如何为Gedit插件创建的菜单项添加键盘快捷键/加速键

时间:2011-10-31 21:00:51

标签: python gtk keyboard-shortcuts pygtk gedit

我创建了一个Gedit 2插件,它将一个项目添加到菜单中,如here所述。如何将键盘快捷键/加速键/加速键绑定到此菜单项?

1 个答案:

答案 0 :(得分:8)

按照给定的教程,你的插件有一些像下面的那些行:

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)])

按照您想要的键盘快捷键 - 让我们说,控制 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")

(由于thisthis而被我自己提问和回答;我失去了一些实时寻找它,我认为这将是一个很好的参考。)