Python 使用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')

我正在练习与Tkinter的事件绑定。 至少对我来说,一个基本的鼠标点击事件(不是双击)似乎很奇怪。 这是我的密码:

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),但不知道如何修复它。

这是因为回调函数是在
列表框的默认处理程序之前执行的。因此,当执行回调函数时,选择尚未设置,因为它是由默认处理程序设置的

您可以在
上进行绑定