使用XPytha菜单栏和设置框。菜单是从缩进的文本文件生成的,我用它创建一个漂亮的嵌套菜单栏,每个菜单项都绑定到一个特定的函数。我有一个“切换状态栏”菜单检查项,它绑定到了toggleStatusBar()上。在
我想看看菜单项是否被选中并做出相应的反应,但我似乎无法从事件中访问菜单项。如果我使用GetId(),如何使用它来查找菜单项?我试过了事件.GetId(),但什么也没有。我也试过了事件.GetEventObject(),它返回了一个菜单,但不是一个菜单项。在
def OnToggleStatusBar(self, event):
id = event.GetId()
menu = event.GetEventObject()
menuItem = menu.FindWindowById(id) #does not work
print self.FindByWindowId(id) # prints None
这有点复杂,但也不算太糟。基本上,您需要使用菜单的
FindItem
方法,它接受菜单项的字符串名称。这将返回它的id,然后可以使用菜单的FindItemById
方法。下面是一个快速而肮脏的例子:使用事件访问所需的数据。在
打印出包含以下内容的所有属性:
^{pr2}$您不需要查找项目,可以使用
wxMenuBar::IsChecked()
,它将直接为您完成。您可以将菜单栏存储在self.menuBar
中,也可以使用其GetMenuBar()
方法从框架中检索它。在相关问题 更多 >
编程相关推荐