3

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

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:我想避免上课。

末日挂载

4

1 回答 1

4

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

Hover1.bind("<Enter>", lambda event, h=Hover1: h.configure(bg="red"))
于 2013-01-10T18:39:13.770 回答