作者热门文章
- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章python tkiner实现 一个小小的图片翻页功能的示例代码由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
具体代码如下所示:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
|
import
tkinter as tk
import
tkinter.messagebox
import
copy
import
os,sys
def
get_picture(dirs):
'''获得所有图片'''
picture_list
=
[]
for
dir
,dir_abs,files
in
os.walk(dirs):
for
file
in
files:
if
file
.endswith(
'.gif'
):
picture_list.append(os.path.join(
dir
,
file
))
return
picture_list
class
Window:
button_list
=
[]
object_list
=
[]
pictures
=
get_picture(picture_path)
file
=
pictures[
0
]
is_show
=
True
index
=
0
image_file
=
''
def
__init__(
self
):
'''创建窗口和frame'''
self
.window
=
tk.Tk()
self
.window.title(
'my window'
)
self
.window.geometry(
'600x600'
)
self
.frame
=
tk.Frame(
self
.window)
self
.frame.pack()
self
.frame_l
=
tk.Frame(
self
.frame)
self
.frame_r
=
tk.Frame(
self
.frame)
self
.frame_l.pack(side
=
'left'
)
self
.frame_r.pack(side
=
'right'
)
self
.frame_ll
=
tk.Frame(
self
.frame_r)
self
.frame_rr
=
tk.Frame(
self
.frame_r)
self
.frame_ll.pack(side
=
'left'
)
self
.frame_rr.pack(side
=
'right'
)
def
next_picture(
self
):
'''下一张图片'''
self
.index
=
self
.pictures.index(
self
.
file
)
self
.index
+
=
1
if
self
.index <
len
(
self
.pictures):
self
.checkout_button()
self
.
file
=
self
.pictures[
self
.index]
self
.create_canvas(
self
.
file
)
else
:
self
.index
=
len
(
self
.pictures)
-
1
tkinter.messagebox.showinfo(
'提示'
,
'已近是最后一张了'
)
def
checkout_button(
self
):
'''判断列表中是否只有button对象'''
object_list_copy
=
copy.copy(
self
.object_list)
for
ob
in
self
.object_list:
if
ob
in
self
.button_list:
pass
else
:
b
=
object_list_copy.pop(
self
.object_list.index(ob))
b.destroy()
self
.object_list
=
object_list_copy
def
pre_picture(
self
):
'''上一页'''
self
.index
=
self
.pictures.index(
self
.
file
)
self
.index
-
=
1
if
self
.index >
=
0
:
self
.checkout_button()
self
.
file
=
self
.pictures[
self
.index]
self
.create_canvas(
self
.
file
)
else
:
self
.index
=
0
tkinter.messagebox.showinfo(
'提示'
,
'已经是第一张了'
)
def
show_picture(
self
):
'''展示图片和翻页按钮'''
self
.
file
=
self
.pictures[
0
]
if
self
.is_show:
self
.is_show
=
False
self
.create_canvas(
self
.
file
)
button1
=
tk.Button(
self
.frame_ll, text
=
'上一张'
, width
=
10
, height
=
1
, command
=
self
.pre_picture)
button1.pack()
button2
=
tk.Button(
self
.frame_rr, text
=
'下一张'
, width
=
10
, height
=
1
, command
=
self
.next_picture)
button2.pack()
self
.button_list.append(button1)
self
.button_list.append(button2)
self
.object_list.extend(
self
.button_list)
else
:
self
.is_show
=
True
while
self
.object_list:
o
=
self
.object_list.pop()
o.destroy()
def
new_button(
self
):
'''创建展示按钮'''
tk.Button(
self
.frame_l, text
=
'图片展示'
, width
=
10
, height
=
1
, command
=
self
.show_picture).pack()
def
create_canvas(
self
,
file
):
'''用画布展示图片'''
self
.image_file
=
tk.PhotoImage(
file
=
file
)
canvas
=
tk.Canvas(
self
.frame_r, height
=
500
, width
=
600
)
canvas.create_image(
1
,
1
, anchor
=
'nw'
, image
=
self
.image_file)
canvas.pack()
self
.object_list.append(canvas)
def
run(
self
):
'''主程序调用'''
self
.window.mainloop()
if
__name__
=
=
'__main__'
:
w
=
Window()
w.new_button()
w.run()
|
样式如下:有点丑,不过功能没毛病,就先这么着吧~~~ 。
点击图片展示之后 。
上一页下一页可以用,再次点击图片展示 。
总结 。
到此这篇关于python tkiner实现 一个小小的图片翻页功能的文章就介绍到这了,更多相关python tkiner实现图片翻页内容请搜索我以前的文章或继续浏览下面的相关文章希望大家以后多多支持我! 。
原文链接:https://blog.csdn.net/weixin_44517891/article/details/105806530 。
最后此篇关于python tkiner实现 一个小小的图片翻页功能的示例代码的文章就讲到这里了,如果你想了解更多关于python tkiner实现 一个小小的图片翻页功能的示例代码的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我是一名优秀的程序员,十分优秀!