没有小部件的系统托盘图标

Posted

技术标签:

【中文标题】没有小部件的系统托盘图标【英文标题】:System tray icon without widgets 【发布时间】:2016-12-12 07:00:29 【问题描述】:

我想知道是否有一种方法可以在没有小部件模块的情况下实现系统托盘图标 + 菜单功能?

【问题讨论】:

快速搜索:doc.qt.io/qt-5/qtwinextras-overview.html#taskbar 谢谢,但不确定我是否理解它在这里有什么帮助。我需要的是类似 QSystemTrayIcon 但没有小部件模块依赖的东西。或/和一些关于如何以最佳方式实施它的方法的想法。 抱歉,混用了 SystemTryTaskBar 您应该用 C++ 编写 QSystemTrayIcon 包装器以在 QML 中使用它。没有办法在纯 QML 中创建系统托盘图标。 【参考方案1】:

Qt 5.8 在实验性 Qt Labs Platform 模块中引入了SystemTrayIcon QML 类型,作为 Qt Quick Controls 2 产品的一部分。它直接使用来自 Qt 平台抽象层的本地实现(如果可用),并使用 Qt Widgets 作为其他平台上的后备。

【讨论】:

至少在 Windows 上仍然需要 Qt Widgets Qt 的 Windows 端口在 Qt 5.10 中获得了对本机菜单的支持,这也使得将 QSystemTrayIcon 的 Windows 后端从 Qt Widgets 移动到 Qt Platform Abstraction 层成为可能。因此,从 Qt 5.10 开始,Qt Labs Platform SystemTrayIcon 和 Menu 在 Windows 上不再需要 Qt Widgets。此外,Qt Labs MenuBar 可以在 Windows 上使用。

以上是关于没有小部件的系统托盘图标的主要内容,如果未能解决你的问题,请参考以下文章

Qt设置系统托盘图标和程序图标

如何将delphi程序图标放入系统托盘中?

centos7.9下Qt 实现系统托盘,托盘菜单,托盘消息

如何使用 FireMonkey 创建托盘图标?

Winforms 通知图标在系统托盘中重复

ava SystemTray类(系统托盘)和TrayIcon类(托盘图标)