我正在尝试制作一个脚本,该脚本将在悬停后更改小部件的背景和前景色。

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个)。我想创建一个函数,该函数将为我悬停的窗口小部件重新着色并解释为什么该脚本没有按我的意愿去做。

我希望我能很好地描述我的问题。谢谢你的回答。

PS:我想避免上课。

mountDoom

最佳答案

您需要提供一个可调用函数来绑定到该事件。相反,您正在调用一个函数并传递其结果。像这样修复它:

Hover1.bind("<Enter>", lambda event, h=Hover1: h.configure(bg="red"))

10-05 18:37