【问题标题】:Python/Tkinter: bind to event related to currently selected menu itemPython/Tkinter:绑定到与当前选定的菜单项相关的事件
【发布时间】:2011-05-12 08:24:17
【问题描述】:

想知道我是否可以绑定与当前选择的菜单项相关的菜单事件?菜单项是指弹出菜单中显示的项目,例如新建、打开、保存等。

用例:我想用当前选择的菜单项的描述更新我们应用程序的状态栏区域。

任何想法表示赞赏。

谢谢你, 马尔科姆

【问题讨论】:

标签: python menu tkinter


【解决方案1】:

您需要绑定到<<MenuSelect>> 事件。

【讨论】:

  • 谢谢。 > 事件正是我正在寻找的。不幸的是,一旦我捕捉到它,我在尝试管理这个事件时遇到了挑战。具体来说,我绑定到定义为 update_statusbar( event=None ) 的函数。此函数中的一个简单打印语句确认我的事件绑定是正确的。但是,event.widget 返回一个字符串与一个小部件引用。看起来我没有得到一个正常的事件对象。这听起来对吗?关于如何通过收到的事件对象确定当前选择的菜单项有什么建议吗?
【解决方案2】:

当鼠标指针进入小部件的空间时会触发<Enter> 事件。根据您构建菜单的方式,您也许可以使用它。

更多信息请见http://www.pythonware.com/library/tkinter/introduction/events-and-bindings.htm

【讨论】:

  • Tkinter 菜单构建命令不会返回小部件引用供我绑定,例如。菜单方法 add_command() 返回 None。
  • @Malcolm 我担心这一点,因为您正在以“传统方式”构建菜单,我认为没有活动可以支持您想要的。
  • 链接已损坏。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-13
  • 1970-01-01
  • 2012-10-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多