理解布局管理器之place的用法的案例
目的
代码
import tkinter as tk
class Application(object):
def __init__(self, master=None):
self.master = master
self.puke_list = list()
self.imags_list = list()
self.show()
def show(self):
for num in range(13):
self.imgs = tk.PhotoImage(file='./pukes/puke{}'.format(num + 1) + '.png')
self.imags_list.append(self.imgs)
for num in range(13):
self.puke_label = tk.Label(self.master, image=self.imags_list[num])
self.puke_list.append(self.puke_label)
for item in range(13):
self.puke_list[item].place(x=10 + item * 48, y=70)
"""为所有的Label增加时间触发处理"""
self.puke_list[1].bind_class('Label', '<Button-1>', self.click) # <Button-1>代表鼠标左键带点击触发
def click(self, event):
# print(event.widget.winfo_geometry()) # 获取Label的位置信息
# print(event.widget.winfo_y()) # 获取Label的纵坐标
# print(event.widget.winfo_x()) # 获取Label的横坐标
if event.widget.winfo_y() == 70:
event.widget.place(y=30)
else:
event.widget.place(y=70)
if __name__ == '__main__':
root = tk.Tk()
root.title('show')
root.geometry('800x500+500+200')
root.resizable(width=0, height=0)
APP = Application(root)
root.mainloop()
效果展示
