2010-12-22 52 views
2

在PyGTK的編碼,我創建的程序菜單是這樣的:如何以編程方式更改gtk +菜單中的加速鍵組合?

def _create_menu 
    manager = self._window.get_ui_manager() 
    self.action_group = gtk.ActionGroup("SomeActions") 
    self.action_group.add_actions([ 
     ("Top", None, _("Main Menu")), 
     ("Test", None, _("Test"), self.shortcut[0], _("Test1"), self.cb_on_test), 
     ("Other", None, _("Other"), self.shortcut[1], _("Test2"), self.cb_on_other)]) 
    manager.insert_action_group(self.action_group, -1) 
    self.ui_id = manager.add_ui_from_string(ui_str) 

菜單顯示爲預期的,但我不明白的是:如何更改先前從其他方法分配給菜單快捷鍵和/或模塊?
更改加速度的變量值(快捷鍵[0]和快捷鍵[1])不會自動更新菜單條目。請幫忙

回答

3

你可以這樣做。 (免責聲明:我正在翻譯它從C上飛)

gtk.accel_map_change_entry('<Actions>/SomeActions/Test', gtk.keysyms.t, gtk.gdk.CONTROL_MASK, False) 

這使得它例如Ctrl-T。 False表示如果已經使用了Ctrl-T,則不要設置新的加速器。

+0

謝謝。這正是我所期待的。我嘗試了你的建議,它的工作 – 2010-12-24 15:34:40

相關問題