Python 使用Tkinter的鼠标单击事件绑定似乎比预期慢一步
我正在练习与Tkinter的事件绑定。 至少对我来说,一个基本的鼠标点击事件(不是双击)似乎很奇怪。 这是我的密码:Python 使用Tkinter的鼠标单击事件绑定似乎比预期慢一步,python,tkinter,events,click,bind,Python,Tkinter,Events,Click,Bind,我正在练习与Tkinter的事件绑定。 至少对我来说,一个基本的鼠标点击事件(不是双击)似乎很奇怪。 这是我的密码: from tkinter import * def change(event): sel = Listbox0.curselection() print(sel) for val in sel: if val == 0: root.configure(background='red')
from tkinter import *
def change(event):
sel = Listbox0.curselection()
print(sel)
for val in sel:
if val == 0:
root.configure(background='red')
elif val == 1:
root.configure(background='green')
elif val == 2:
root.configure(background='yellow')
root = Tk()
root.geometry('250x275')
Listbox0 = Listbox(root, height=3)
Listbox0.insert(0, 'Red')
Listbox0.insert(1, 'Green')
Listbox0.insert(2, 'Yellow')
Listbox0.bind('<Button-1>', change)
Listbox0.pack()
root.mainloop()
从tkinter导入*
def更改(事件):
sel=Listbox0.curselection()
打印(sel)
对于sel中的val:
如果val==0:
root.configure(background='red')
elif val==1:
root.configure(background='green')
elif val==2:
root.configure(background='yellow')
root=Tk()
根几何体('250x275')
Listbox0=Listbox(根,高度=3)
Listbox0.insert(0,“红色”)
Listbox0.插入(1,“绿色”)
Listbox0.插入(2,‘黄色’)
Listbox0.bind(“”,更改)
Listbox0.pack()
root.mainloop()
如您所见,我的代码应该根据列表框中选定的颜色更改背景颜色。然而,它的工作速度慢了一步。首先,当我在主循环运行之后单击任何项目时,什么也没有发生。之后,每次我单击任何项目时,背景都会改变,但颜色与我刚才单击的颜色相同。我在函数中有一条打印线索(sel),但不知道如何修复它。这是因为回调函数是在
列表框的默认处理程序之前执行的。因此,当执行回调函数时,选择尚未设置,因为它是由默认处理程序设置的
您可以在
或
上进行绑定