我正在 tkinter 中創建一個 OptionMenu 并為其分配一個函式,以便在我選擇一個選項時運行:
dropdown = tk.OptionMenu(root, var, *dropdownStr, command=functiona)
dropdown.pack()
我還有另一個函式可以完全清除下拉串列并重新填充它,因為另一個函式將更新或完全更改 dropdownStr 的內容。
var.set('')
dropdown['menu'].delete(0, 'end')
for string in dropdownStr:
dropdown['menu'].add_command(label=string, command=tk._setit(var, string))
這按預期作業,并且下拉串列以我想要的方式更新。但是,從此時起,下拉選單不再呼叫函式。沒有錯誤或抱怨,但好像我在創建選單時從未設定過命令。我試圖dropdown.configure將命令重新設定為函式,但這似乎不起作用。如何避免將呼叫擦除到函式中,或者至少在清除下拉串列后重新設定它?
uj5u.com熱心網友回復:
您需要functiona作為的第三個引數傳遞tk._setit():
var.set('')
dropdown['menu'].delete(0, 'end')
for string in dropdownStr:
dropdown['menu'].add_command(label=string, command=tk._setit(var, string, functiona))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/462082.html
上一篇:Tkinter:使用回圈添加列并在Treeview中手動添加:_tkinter.TclError:Columnindexoutofbounds
