我在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版本都有一个任务栏使这个想法变得糟糕?
我可以使用任何替代解决方案吗?
答案 0 :(得分:1)
Linux上的每个桌面环境在设计目标上都略有不同。 Gnome正在远离托盘图标,更喜欢DBus激活的服务和通知的设计。 Unity / Plasma有AppIndicators,它的功能很像托盘图标,但由于它们是DBus接口,因此略有限制。像XFCE这样的经典环境仍然是X11,因此XEmbed样式托盘(GtkStatusIcon)仍在大量使用。