Как программно изменить привязку клавиш в меню gtk +? - PullRequest
2 голосов
/ 23 декабря 2010

Закодированный в pygtk, я создал меню программы следующим образом:

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)

Меню отображается, как и ожидалось, но я не понимаю, как: изменить клавиши ускорения, ранее назначенные менюиз других методов и / или модулей?Изменение значений переменных acl (ярлык [0] и ярлык [1]) автоматически не обновляет пункт меню.Пожалуйста, помогите

1 Ответ

3 голосов
/ 24 декабря 2010

Вы можете сделать это так.(Отказ от ответственности: я перевожу это с C на лету)

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

Это делает его Ctrl-T, например.False означает, что не устанавливать новый ускоритель, если Ctrl-T уже используется.

...