理解布局管理器之place的用法的案例

理解布局管理器之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()

效果展示

posted @ 2021-04-17 14:02  廿九九  阅读(161)  评论(0)    收藏  举报