我一直在尝试获取鼠标悬停事件来更改 Tkinter 中按钮小部件的背景颜色。我在网上获得了一些适用于文本的简单代码,但无法用于颜色。在这里:
from Tkinter import *
root - Tk()
b = Button(root, text='foo')
b.pack()
def enterB(event):
b.configure(text='bar', background='red')
def leaveB(event):
b.configure(text='foo')
b.bind('<Enter>', enterB)
b.bind('<Leave>', leaveB)
root.mainloop()
当我将鼠标放在按钮上时,文本变为“栏”,但背景颜色保持灰色。当我的鼠标离开按钮上方的区域时,背景颜色变为红色,文本变为“foo”。这与应该发生的情况相反。
如果我在 leaveB 函数的 b.configure 语句中设置 background='blue',其余部分保持不变,则离开按钮将使按钮保持蓝色,而永远不会是红色。
谁能告诉我发生了什么事?
谢谢。
最佳答案
首先,我猜这是第 2 行的错字,应该是 root = Tk()
除了在从按钮上移开鼠标时背景保持红色
之外,该程序对我来说工作正常。这可以通过稍微修改 leaveB
函数来改变,如下所示:
def leaveB(event):
b.configure(text="foo", background="SystemButtonFace")
如果您使用的是 Windows,其中 "SystemButtonFace"
是默认的按钮表面颜色
关于python - 奇怪的 Tkinter 鼠标悬停行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13428233/