2016-09-24 2 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')) 
Смежные вопросы