gpt4 book ai didi

python-2.7 - 如何为 Gio.MenuItem 显示加速器

转载 作者:行者123 更新时间:2023-12-04 01:06:57 25 4
gpt4 key购买 nike

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

pic

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

我正在使用的代码片段如下:

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)

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

完整来源在这里:
  • https://github.com/fossfreedom/Rhythmbox-Random-Album-Player
  • 最佳答案

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

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

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

    要完成答案,您还可以通过这种方式设置菜单项的标签和操作:

    item = 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扮演同样的角色。

    关于python-2.7 - 如何为 Gio.MenuItem 显示加速器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16840517/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com