我正在尝试创建一个脚本,它会在悬停后更改小部件的背景和前景色。
from Tkinter import *
root=Tk()
Hover1=Button(root,text="Red color", bg="white")
Hover1.pack()
Hover2=Button(root,text="Yellow color", bg="white")
Hover2.pack()
Hover1.bind("<Enter>",Hover1.configure(bg="red"))
Hover1.bind("<Leave>",Hover1.configure(bg="white"))
Hover2.bind("<Enter>",Hover2.configure(bg="yellow"))
Hover2.bind("<Leave>",Hover2.configure(bg="white"))
root.mainloop()
但当我悬停在任何按钮上时,没有任何反应,它们会保持白色。我知道我可以使用一个函数,但每个小部件都有两个函数(1个用于, 1 for)。我想创建一个单独的函数,它将重新着色我悬停的小部件,并解释为什么这个脚本没有做我想做的事情。
我希望我能很好地描述我的问题。谢谢你的每一个答案。
PS:我想避免上课。
mountDoom
答案 0 :(得分:3)
您需要提供可调用的函数来绑定到事件。相反,您正在调用函数并传递其结果。修复如下:
Hover1.bind("<Enter>", lambda event, h=Hover1: h.configure(bg="red"))