c - GTK3 添加到窗口的任务托盘图标上下文菜单

标签 c linux user-interface gtk

我在 C 中工作,并创建一个窗口和一个菜单:

window = gtk_application_window_new (app);
[ ... ]
menu = gtk_menu_new();

我目前将菜单连接到窗口中的按钮,如下所示:

g_signal_connect (widget, "clicked", G_CALLBACK (open_menu), NULL);

然而,菜单确实是它唯一需要的界面。在 Windows 上,我有一个带有上下文菜单的托盘图标。

我不想使用 GtkStatusIcon,因为它已被弃用,而且会被滥用。

我想在 Linux 上做类似的事情,但我需要能够获得窗口的任务托盘图标上下文菜单。

这可能吗?还是并非所有 Linux 版本都有任务栏这一事实使这成为一个坏主意?

我可以使用任何替代解决方案吗?

最佳答案

在这方面,Linux 上的每个桌面环境的设计目标都略有不同。 Gnome 正在远离托盘图标,而更喜欢 DBus 激活服务和通知的设计。 Unity/Plasma 具有 AppIndicators,其功能主要类似于托盘图标,但由于它们是 DBus 接口(interface),因此受到的限制略多。像 XFCE 这样的经典环境仍然只是 X11,所以 XEmbed 风格的托盘 (GtkStatusIcon) 仍然在大量使用。

关于c - GTK3 添加到窗口的任务托盘图标上下文菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39066913/

相关文章:

c - 是否可以确定持有互斥体的线程?

c - `from`的 `lua_resume`参数的含义

linux - agetty.c 中的特殊字符

android - 为什么我把tcpdump的权限改成777后,我的Android APP还是不能使用tcpdump?

java - 更改 jScrollPane 的一侧并更改大小

c - 将另一个程序集成到使用 CMake 编译的现有程序中

c++ - 使用矩阵、欧拉角和/或四元数进行旋转表示的优缺点是什么?

linux - 禁用嵌入式linux生产环境的root登录?

java - 从 SmartGWT 部署外部的目录访问本地文件?

C++ 流程图/GUI 设计器