【发布时间】:2011-10-31 21:00:51
【问题描述】:
我创建了一个 Gedit 2 插件,它可以向菜单中添加一个项目,如 here 所述。如何将键盘快捷键/加速键/加速键绑定到此菜单项?
【问题讨论】:
标签: python gtk keyboard-shortcuts pygtk gedit
我创建了一个 Gedit 2 插件,它可以向菜单中添加一个项目,如 here 所述。如何将键盘快捷键/加速键/加速键绑定到此菜单项?
【问题讨论】:
标签: python gtk keyboard-shortcuts pygtk gedit
按照给定的教程,您的插件在某处有如下几行:
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)])
通过您想要的键盘快捷键 - 让我们说,ControlR:
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")
【讨论】: