tkinter不绑定所有指定的标签?

因此,我试图创建一个Tkinter应用程序,在其中单击并拖动鼠标时,它将打印鼠标指针的初始和最终位置。

有一个嵌套列表,其中包含我要绑定的标签。我首先在每个标签上绑定左键单击,然后在标签上单击鼠标左键以绑定其发布。释放左键单击时,它将打印鼠标指针相对于标签的初始位置和最终位置。

所以这是代码

from  tkinter import *

class game(Frame):
    def __init__(self,parent):
        Frame.__init__(self,parent)
        self.llist = [[0]*4]*4
        for i in range(4):
            for j in range(4):
                self.llist[i][j] = Label(self,bd = 1, relief = 'ridge',height = 4, width = 8)
                self.llist[i][j].grid(row = i, column = j)
                self.llist[i][j].bind('<Button-1>',lambda event, r = i, c = j: self.click(event,r,c))

    def click(self,event,r,c):
        a,b = event.x,event.y
        self.llist[r][c].bind('<ButtonRelease-1>',lambda event: self.release(event,a,b))

    def release(self,event,a,b):
        print(a,b,event.x,event.y)

r = Tk()
r.geometry('300x300')

f = game(r)
f.pack()

r.mainloop()

但是问题在于只有最后四个标签有效!

问题在于第二个绑定。当我仅测试第一个绑定时,所有标签都起作用!

请帮忙!!!

评论