![](/img/trans.png)
[英]Tkinter: OptionMenu Drop down list positioning control on multiple screens
[英]Drop down button in Tkinter OptionMenu
您正在尋找的事件是Activate
:
optmenu.bind('<Activate>', onactivate)
您的onactivate
回調onactivate
帶有Activate
事件,但是您可能並不關心它的屬性。
問題的后半部分是如何更新菜單。 為此,您可以使用menu
屬性,該屬性是一個Menu
對象,可以在其上調用delete
和add
以及其他所需的對象。 因此,例如:
def onactivate(evt):
menu = optmenu['menu']
menu.delete(0, tkinter.END)
menu.add_command(label='new choice 1')
menu.add_command(label='new choice 2')
menu.add_separator()
menu.add_command(label='new choice 3')
optvar.set('new choice 1')
(但是,請注意,雖然在末尾set
var確實會導致它成為新的默認選擇,並且確實顯示在菜單標題中,但是如果沒有將光標移到菜單項上,則不會導致選中的項目突出顯示在任何菜單項上。如果需要,這很棘手,所以希望您不要。)
'<Activate>'
無效,但是我找到了'<Button-1>'
,現在可以正常工作了。
optmenu.bind('<Button-1>', onactivate)
謝謝 :)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.