【发布时间】:2021-03-22 02:01:13
【问题描述】:
我想在 Python Tkinter 模块中更改鼠标光标悬停时按钮的背景和前景色。在将按钮打包到主窗口之前,我可以更改一次按钮的背景颜色。
但是在window.mainloop() 行之后,我不能再执行行,直到主窗口被破坏(或关闭)。
我在问即使在window.mainloop() 行之后,有什么方法可以更改鼠标悬停时的按钮颜色(背景和前景)?
我的代码
import tkinter
window = tkinter.Tk()
button = tkinter.Button(window, text="Test", fg='#03045e', command=terminate_instant,
relief=tkinter.RIDGE, bg='#caf0f8', activebackground='#ef233c',
activeforeground='white')
button.pack(side=tkinter.BOTTOM)
window.mainloop()
【问题讨论】:
-
我不明白你到底想要什么,因为按钮的颜色在鼠标悬停时已经改变(activeforeground 和 activebackground)。
-
@j_4321:不,这不正确,它不正确。
-
@martineau 它在我的电脑上运行 (Linux)
-
@j_4321:它不在我的 Windows 机器上。另外,我想昨天我在这里读到了一些内容,表明在 MacOS 上,您无法更改
Buttons 的背景颜色——因此似乎存在与此相关的特定于操作系统的行为。找到我读到的:How to change the foreground or background colour of a Tkinter Button on Mac OS X? -
@martineau 是的,可能有几种依赖于操作系统的样式行为。当我将光标放在按钮上时,它会根据
bg和activebackground选项的设置从浅蓝色变为深红色。另一方面,acw1668 的回答对我不起作用,因为在输入按钮时设置的bg被activebackground选项覆盖
标签: python tkinter button tkinter-button