gpt4 book ai didi

GTK+ 3 状态图标替换

转载 作者:行者123 更新时间:2023-12-03 20:53:59 25 4
gpt4 key购买 nike

我希望我的 GTK 应用程序在系统托盘中有一个状态图标,我使用 StatusIcon 可以很好地工作,但是这已被弃用:

gtk_status_icon_new has been deprecated since version 3.14 and should not be used in newly-written code.

Use notifications


文档说“使用通知”,但我不知道这实际上意味着什么。我将其解释为“使用桌面通知”,但据我所知,这用于完全不同的目的。我想要一个始终可见的系统托盘图标,而不是临时弹出通知。尽管如此,我找不到任何其他似乎是“通知”的意思。
是否存在 GtkStatusIcon 的新替代品,它在系统托盘中提供一个图标,支持接收鼠标单击/滚动信号和显示弹出菜单?

最佳答案

对于更高版本的 GTK+ 3,StatusIcon 已被弃用,您可以使用以下代码来防止看到任何关于弃用的警告:

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
// Insert Status Icon Code Here
#pragma GCC diagnostic pop
虽然它已被弃用,但直到 GTK4 才从 GTK 中删除。
对于 GTK4 等,我创建了 TIL - Tray Icon Library ,它应该适用于任何 GTK 版本。有示例代码如何与 GTK4 一起使用。目前它只能通过 XEMBED 使用 XCB ,但将来会支持更多的后端。长期目标是支持大多数不同的后端在不同情况下创建托盘/状态图标。
基本上它的工作原理是,我们完全使用我们想要的后端创建托盘图标,在本例中为 X11。然后我们得到 GTK Widget 的 X-Connection 和 X Window ID。然后我们只需将 GTK Widget 的 X Window ID 添加为我们使用 X 创建的托盘图标的子项。这样就可以在托盘图标中插入任何 GTK Widget。 X 中的托盘图标实际上只是卡在托盘中的窗口。并非所有小部件都能正常工作。

关于GTK+ 3 状态图标替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41917903/

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