朋友们,我正在尝试在按钮上使用python(3.5.2)进行悬停效果,我使用下面的代码。
from tkinter import *
root = Tk()
root.geometry("200x200+400+400")
myBtn = Button(root, text="TEST")
myBtn.pack(padx=10, pady=10)
myBtn.bind("<Enter>", lambda event, h=myBtn: h.configure(bg="red"))
myBtn.bind("<Leave>", lambda event, h=myBtn: h.configure(bg="yellow"))
root.mainloop()
它很奇怪。
当我将鼠标悬停在按钮上时,第一次没有任何反应
当我离开时,它会发出黄色(满足第二个被绑定的事件)。
我找不到我弄错的地方。可能有人指出我
答案 0 :(得分:1)
在<Enter>
绑定中,您只需设置activebackground
而不是普通background
(bg
是background
的同义词)。
import tkinter as tk
root = tk.Tk()
root.geometry("200x200+400+400")
myBtn = tk.Button(root, text="TEST")
myBtn.pack(padx=10, pady=10)
myBtn.bind("<Enter>", lambda event, h=myBtn: h.configure(activebackground="red"))
myBtn.bind("<Leave>", lambda event, h=myBtn: h.configure(bg="yellow"))
root.mainloop()
我改变了凌乱&#34;明星&#34;的import
陈述。 import,它将135个Tkinter名称导入您的命名空间。这需要更多的打字,但它使代码更容易阅读和保持,因为它明确了哪些名字来自Tkinter。