我需要一个菜单,该菜单可以响应通过运行代码单击的项目,然后将文本切换回默认文本。
当前,我的实现有效,但是仅当鼠标单击后将鼠标悬停在菜单上时才显示默认文本。
我进行了搜索,但找不到任何与此问题相关的信息,尽管那也许是因为我不确定到底是什么原因造成的。
以下是可重现此行为的代码:
from tkinter import *
root = Tk()
default_text = 'select an item'
def thing_selected(self, *args):
#other stuff happens here
var.set(default_text)
var = StringVar(root)
var.set(default_text)
var.trace('w', thing_selected)
menu = OptionMenu(root, var, *['Pizza','Lasagne','Fries','Fish'])
menu.pack()
root.mainloop()
以下是表示结果的gif:
我希望顶部的文本能够立即更新,但是仅当光标悬停在小部件上时才会更新
我正在寻找某种方式来触发小部件上的悬停事件,或者我对实现此目的的其他方法持开放态度。
答案 0 :(得分:2)
您可以采用其他方法,并使用command
的{{1}}属性:
OptionMenu