我创建了一个Gedit 2插件,它将一个项目添加到菜单中,如here所述。如何将键盘快捷键/加速键/加速键绑定到此菜单项?
答案 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")