0

我想在 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()
4

1 回答 1

2

您可以使用<Enter><Leave>事件来更改按钮的fgbg颜色:

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)
button.bind("<Enter>", lambda e: button.config(fg='#caf0f8', bg='#03045e'))
button.bind("<Leave>", lambda e: button.config(fg='#03045e', bg='#caf0f8'))
window.mainloop()
于 2020-12-10T16:10:27.527 回答