2016-09-24 47 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')) 
事件
相關問題