2016-09-24 78 views
0

我使用XRC这样定义的菜单:如何以编程方式设置Python XRC MenuItem的选中状态?

<object class="wxMenuItem" name="MenuItem_ShowTooltips"> 
    <label>Show tooltips</label> 
    <checkable>1</checkable> 
</object> 

,我从它我的应用程序初始化是这样的

self.frame = self.res.LoadFrame(None, 'MainFrame')

父框架在我的应用程序开始我检查用户首选项文件得到初始值(在这种情况下是一个布尔值)并且想要根据该参数来检查或取消选中MenuItem。与正常的WX控制我可以使用类似

self.MenuItem_ShowTooltips.Check(self.UserPreferences['ShowTooltips'])

如何,我可以得到的XRC一个手柄创建MenuItem_ShowTooltips控制?

回答

0

好吧,经过几天的摆弄,我找到了我的答案。如果它可以帮助其他人,或者如果我忘记并最终返回到StackOverflow再次找到答案,那么就是这样。

要获取菜单项的句柄,您必须使用wx窗口的GetMenuBar()方法。

self.MenuItem_ShowTooltips = self.TopWindow.GetMenuBar().FindItemById(xrc.XRCID('MenuItem_ShowTooltips')) 

一旦你有一个手柄,你可以设置它的选中状态这样

self.MenuItem_ShowTooltips.Check(self.UserPreferences['ShowTooltips']) 

而你把它绑定到这样

self.frame.Bind(wx.EVT_MENU, self.SaveUserPrefs, id=xrc.XRCID('MenuItem_ShowTooltips')) 
事件
相关问题