Button Tkinter是否仅在程序启动时保留事件触发?

Button Tkinter是否仅在程序启动时保留事件触发?,button,tkinter,bind,mouseleave,Button,Tkinter,Bind,Mouseleave,我正在尝试放置一个小标签,提示用户绑定到它的键盘快捷键,这很好 当我离开按钮时,问题就出现了。标签消失了,但不完全消失。如果我试着点击标签“曾经”所在区域的按钮,它不会启动,表明它仍然存在。所以我想按钮可能已经内置了一个休假事件,可以将按钮提升到最高级别。我决定尝试覆盖它,并基本上告诉按钮转到(或者更好,只是停留在)键提示标签下方hit\u button.bind(“,hit\u button.lower(hit\u button\u keyhint),但没有用。我做错了什么

我正在尝试放置一个小标签,提示用户绑定到它的键盘快捷键,这很好

当我离开按钮时,问题就出现了。标签消失了,但不完全消失。如果我试着点击标签“曾经”所在区域的按钮,它不会启动,表明它仍然存在。所以我想按钮可能已经内置了一个休假事件,可以将按钮提升到最高级别。我决定尝试覆盖它,并基本上告诉按钮转到(或者更好,只是停留在)键提示标签下方
hit\u button.bind(“,hit\u button.lower(hit\u button\u keyhint)
,但没有用。我做错了什么

                                       fg=hit_button['fg'])
    hit_button_keyhint.place(relx=0.5, rely=0.85, anchor='center')
    hit_button.bind("<Leave>", hit_button.lower(hit_button_keyhint))
fg=点击按钮['fg'])
点击按键提示。放置(relx=0.5,rely=0.85,锚定='center')
点击按钮。绑定(“,点击按钮。降低(点击按钮提示))

您需要向绑定传递一个函数,在这里执行一个函数。(
点击按钮。降低(点击按钮提示)

为此,您应该使用lambda

你可以在这里得到一些澄清:

但这应该是可行的:

hit_button.bind("<Leave>",lambda event, k=hit_button_keyhint:hit_button.lower(k)
hit_button.bind(“),lambda事件,k=hit_button\u key提示:hit_button.lower(k)

另外,我忘了提到,使用
print(“left”)
我意识到该事件在游戏启动时只触发了一次,但再也不会触发。为什么在我用光标输入按钮之前它会触发?请你的问题包括一个。