查询Python tkinter绑定事件

时间:2017-04-29 08:38:53

标签: python tkinter

朋友们,我正在尝试在按钮上使用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()

它很奇怪。
当我将鼠标悬停在按钮上时,第一次没有任何反应 当我离开时,它会发出黄色(满足第二个被绑定的事件)。

我找不到我弄错的地方。可能有人指出我

1 个答案:

答案 0 :(得分:1)

<Enter>绑定中,您只需设置activebackground而不是普通backgroundbgbackground的同义词)。

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。