消息菜单的动态快捷方式?

消息菜单的动态快捷方式?

我是统一邮件开发人员,我想知道是否可以从应用程序内部添加消息菜单的快捷方式(它是用 Python 编写的)。

我需要将其连接user-display到应用程序中的某个功能。例如,“将全部标记为已读”命令需要此功能。

规格仅说明静态快捷方式,这些快捷方式被添加到.desktop 文件中:

.desktop文件本身中,应用程序可以指定快捷操作无论程序是否正在运行,都可以调用这些操作。这些操作的语法定义在应用程序快捷方式

答案1

是的,尽管手工构建的绑定不会公开它,但您必须使用 GObject Introspected 绑定才能做到这一点。不幸的是,目前还没有使用这些的教程。

为此,您需要获取 IndicateServer 并对其调用 set_menu。它将您想要提供的 Dbusmenu 作为参数。有很多方法可以做到这一点,但让我给你一些快速的伪代码(因为我不熟悉 Python)。希望有编辑权限的人可以提供帮助。

menuserver = Dbusmenu.Server("/my/unique/path")
root = Dbusmenu.Menuitem()
menuserver.set_root(root)

first = Dbusmenu.Menuitem()
first.property_set("label", "First")
first.connect("item-activated", call_me_on_click)
root.child_append(first)

second = Dbusmenu.Menuitem()
second.property_set("label", "Second")
root.append_child(second)

indicateserver.set_menu(menuserver)

您还可以在菜单项上设置其他属性,以便执行您想要的任何操作。如果您觉得使用 更方便,也可以从 GTK 菜单构建它们DbusmenuGtk.parse_menu_structure()。还有DbusMenu 的 API 文档

答案2

您始终可以获取桌面文件来运行脚本,然后使用该脚本根据某些已保存的文件或其他指示来选择所需的操作。

相关内容