python - 奇怪的 Tkinter 鼠标悬停行为

标签 python tkinter

我一直在尝试获取鼠标悬停事件来更改 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/

相关文章:

python - 如何删除 for 循环中的标签

python - 为什么点击文本小部件后会出现框架边框/线条(框架在 Canvas 内)tkinter

python - GAE 中 SUDS 的属性错误

python - 将 gtk.DrawingArea 保存到文件

python - "object of type ' 无类型 ' has no len()"错误

python - 使用 tkinter 为单独的程序编写 Python UI。该程序的停止按钮基本上会卡住 UI 并继续执行脚本

python - Tkinter Canvas 中的垂直文本

python - 如何让 tkinter 按钮返回其文本值

python - 如何退出Python解释器?

python - Matplotlib:更改文本中的字体大小 "midway"