2024-04-20 00:01:24 发布
网友
是否有可能在悬停在Button上后更改其背景色?Tkinter的密码是什么?
Button
遗憾的是,activebackground和activeforeground选项似乎只在单击按钮时起作用,而不是在将鼠标悬停在按钮上时起作用。改用<Leave>和<Enter>事件
activebackground
activeforeground
<Leave>
<Enter>
import tkinter as tk def on_enter(e): myButton['background'] = 'green' def on_leave(e): myButton['background'] = 'SystemButtonFace' root = tk.Tk() myButton = tk.Button(root,text="Click Me") myButton.grid() myButton.bind("<Enter>", on_enter) myButton.bind("<Leave>", on_leave) root.mainloop()
对于多个按钮来说,一个更巧妙的方法是创建一个新的按钮类,该类修改默认按钮的行为,以便activebackground在您悬停时实际工作。
import tkinter as tk class HoverButton(tk.Button): def __init__(self, master, **kw): tk.Button.__init__(self,master=master,**kw) self.defaultBackground = self["background"] self.bind("<Enter>", self.on_enter) self.bind("<Leave>", self.on_leave) def on_enter(self, e): self['background'] = self['activebackground'] def on_leave(self, e): self['background'] = self.defaultBackground root = tk.Tk() classButton = HoverButton(root,text="Classy Button", activebackground='green') classButton.grid() root.mainloop()
遗憾的是,
activebackground
和activeforeground
选项似乎只在单击按钮时起作用,而不是在将鼠标悬停在按钮上时起作用。改用<Leave>
和<Enter>
事件对于多个按钮来说,一个更巧妙的方法是创建一个新的按钮类,该类修改默认按钮的行为,以便
activebackground
在您悬停时实际工作。相关问题 更多 >
编程相关推荐