我需要一個菜單,它可以響應通過運行代碼單擊的項目,然后將文本切換回默認文本。目前,我的實現有效,但默認文本僅在單擊后光標懸停在菜單上時顯示。我已經搜索過,但找不到與此問題相關的任何內容,盡管這可能是因為我不確定究竟是什么原因造成的。這是重現此行為的代碼: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:我希望頂部的文本會立即更新,但只有當光標懸停在小部件上時才會更新我正在尋找某種方法來觸發小部件上的懸停事件,或者我愿意接受任何其他方法的建議來實現這一點。
1 回答

慕斯王
TA貢獻1864條經驗 獲得超2個贊
您可以采取不同的路線并使用以下command屬性OptionMenu:
import tkinter as tk
root = tk.Tk()
default_text = 'select an item'
def thing_selected(selected):
#other stuff happens here
print(var.get())
var.set(default_text)
print(var.get())
var = tk.StringVar()
var.set(default_text)
options = ['Pizza','Lasagne','Fries','Fish']
menu = tk.OptionMenu(root, var, *options, command = thing_selected)
menu.pack()
root.mainloop()
添加回答
舉報
0/150
提交
取消