Поэтому я пытался создать приложение 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()
Но проблема в том, что работают только последние 4 метки!
Проблема со второй привязкой. Когда я проверяю только первую привязку, все метки работают!
Пожалуйста, помогите !!!