在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)
菜单按预期显示,但我不明白的是:如何从其他方法和/或模块更改先前分配给菜单的加速键? 更改加速度的变量值(快捷键[0]和快捷键[1])不会自动更新菜单项。请帮忙
答案 0 :(得分:3)
你可以这样做。 (免责声明:我正在将它从C中翻译出来)
gtk.accel_map_change_entry('<Actions>/SomeActions/Test', gtk.keysyms.t, gtk.gdk.CONTROL_MASK, False)
这使得它成为Ctrl-T。 False
表示如果已使用Ctrl-T,则不设置新加速器。