【问题标题】:how to display an accelerator for a Gio.MenuItem如何显示 Gio.MenuItem 的加速键
【发布时间】:2013-05-30 15:46:50
【问题描述】:

我正在尝试显示 Gio.Menuitem 的快捷键加速器

如您所见,RandomAlbum 菜单项没有显示加速器 - 但是,我已添加加速器并将其成功连接到 Gio.MenuItem,因为 menuitem 响应键盘快捷键 Alt+Z

我使用的sn-p代码如下:

action = Gio.SimpleAction.new(action_name, None)
app = Gio.Application.get_default()
app.add_accelerator("<alt>Z", "app."+action_name, None)

item = Gio.MenuItem()
item.set_detailed_action('app.' + action_name)
item.set_label("RandomAlbum")

app.add_plugin_menu_item('tools', "unique name", item)

任何想法为什么加速器不显示 - 但仍然响应键盘控制?

完整的来源在这里:

【问题讨论】:

    标签: python-2.7 gtk3 rhythmbox


    【解决方案1】:

    这个拼图的缺失部分是意识到 Gio.MenuItems 本身具有属性值。

    所以在这种情况下,在将菜单项添加到 GMenu 之前,所需的语法是:

    item.set_attribute_value("accel", GLib.Variant("s", "<Alt>Z"))
    

    要完成答案,您还可以这样设置菜单项的标签和操作:

    项目 = Gio.MenuItem() item.set_attribute_value("label", GLib.Variant("s", "RandomAlbum")) item.set_attribute_value("action", GLib.Variant("s", "app."+action_name))

    但是,set_labelset_detailed_action 方法执行相同的角色。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-01
      相关资源
      最近更新 更多