Как добавить сочетания клавиш / клавиши ускорения для пункта меню, созданного плагином Gedit - PullRequest
3 голосов
/ 01 ноября 2011

Я создал плагин Gedit 2, который добавляет элемент в меню, как описано здесь . Как я могу привязать сочетание клавиш / ускорение / ускорение к этому пункту меню?

1 Ответ

8 голосов
/ 01 ноября 2011

Следуя данному уроку, ваш плагин имеет несколько строк, аналогичных приведенным ниже:

self._action_group = gtk.ActionGroup("ExamplePyPluginActions")
self._action_group.add_actions([("ExamplePy", None, _("Clear document"),
         None, _("Clear the document"),
         self.on_clear_document_activate)])
manager.insert_action_group(self._action_group, -1)

Просто замените второй аргумент None в

self._action_group.add_actions([("ExamplePy", None, _("Clear document"),
        None, _("Clear the document"),
        self.on_clear_document_activate)])

на нужную клавиатуруярлык - скажем, Control R :

self._action_group.add_actions([("ExamplePy", None, _("Clear document"),
        "<control>r", _("Clear the document"), # <- here
        self.on_clear_document_activate)])

Возможно, вы также использовали созданное вручную действие (это по крайней мере мой любимый способ работыс ним):

action = gtk.Action("ExamplePy", 
        _("Clear document"), 
        _("Clear the document"), None)
action.connect("activate", self.on_open_regex_dialog)
action_group = gtk.ActionGroup("ExamplePyPluginActions")
action_group.add_action(action)

В этом случае просто замените action_group.add_action() на action_group.add_action_with_accel():

action_group = gtk.ActionGroup("ExamplePyPluginActions")
action_group.add_action_with_accel(action, "<control>r")

(Спросил и ответил сам из-за этого и это ; я потерял некоторое время на поиски и подумал, что это будет хорошим справочником.)

...