2

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

菜单按预期显示,但我不明白的是:如何更改以前从其他方法和/或模块分配给菜单的加速键?
更改 accel 的变量值(快捷方式 [0] 和快捷方式 [1])不会自动更新菜单条目。请帮忙

4

1 回答 1

3

你可以这样做。(免责声明:我正在从 C 即时翻译它)

gtk.accel_map_change_entry('<Actions>/SomeActions/Test', gtk.keysyms.t, gtk.gdk.CONTROL_MASK, False)

例如,这使它成为 Ctrl-T。如果已使用 Ctrl-T ,False则表示不设置新的加速器。

于 2010-12-23T22:34:01.737 回答