![](/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.