SystemTrayIcon QML Type
系统托盘图标更多
Import Statement: | import Qt.labs.platform |
Inherits: |
属性
- available : bool
- geometry : rect
(since Qt.labs.platform 1.1 (Qt 5.12))
- icon
(since Qt.labs.platform 1.1 (Qt 5.12))
- icon.mask : bool
(since Qt.labs.platform 1.1 (Qt 5.12))
- icon.name : string
(since Qt.labs.platform 1.1 (Qt 5.12))
- icon.source : url
(since Qt.labs.platform 1.1 (Qt 5.12))
- icon.mask : bool
- menu : Menu
- supportsMessages : bool
- tooltip : string
- visible : bool
信号
- activated(ActivationReason reason)
- messageClicked()
方法
- void hide()
- void show()
- void showMessage(string title, string message, MessageIcon icon, int msecs)
详细说明
SystemTrayIcon 类型为系统托盘中的应用程序提供图标。
许多桌面平台都提供了专门的系统托盘或通知区域,应用程序可以在其中显示图标和通知消息。
下面的示例展示了如何创建系统托盘图标,以及如何使用activated() 信号:
SystemTrayIcon { visible: true icon.source: "qrc:/images/tray-icon.png" onActivated: { window.show() window.raise() window.requestActivate() } }
托盘菜单
SystemTrayIcon 可以有一个菜单,在图标被激活时打开。
下面的示例说明了如何为系统托盘图标分配Menu :
SystemTrayIcon { visible: true icon.source: "qrc:/images/tray-icon.png" menu: Menu { MenuItem { text: qsTr("Quit") onTriggered: Qt.quit() } } }
通知信息
SystemTrayIcon 可以显示通知消息。
下面的示例介绍了如何使用showMessage() 显示通知消息,以及如何使用messageClicked() 信号:
SystemTrayIcon { visible: true icon.source: "qrc:/images/tray-icon.png" onMessageClicked: console.log("Message clicked") Component.onCompleted: showMessage("Message title", "Something important came up. Click this to know more.") }
可用性
本机系统托盘图标目前可在以下平台上使用available :
- 所有实现freedesktop.org XEmbed 系统托盘规范的 X11 窗口管理器和独立托盘实现。
- 所有实施freedesktop.org D-Bus StatusNotifierItem 规范的桌面环境,包括 KDE 和 Unity 的最新版本。
- 所有支持的 macOS 版本。请注意,showMessage() 必须安装 Growl 通知系统,才能在 10.8(Mountain Lion)之前的 OS X 上显示消息。
在没有本地实现的平台上,Qt Labs Platform 模块使用Qt Widgets 作为备用。因此,使用Qt Labs Platform 模块中类型的应用程序应链接到 QtWidgets 并使用QApplication 而不是QGuiApplication 。
要链接 QtWidgets 库,请在 qmake 项目文件中添加以下内容:
QT += widgets
在main()
中创建QApplication 的实例:
#include <QApplication> #include <QQmlApplicationEngine> int main(int argc, char *argv[]) { QApplication app(argc, argv); QQmlApplicationEngine engine; engine.load(QUrl(QStringLiteral("qrc:/main.qml"))); return app.exec(); }
注意: Qt.labs 模块中的类型不保证在未来版本中保持兼容。
另请参阅 Menu 。
属性文档
available : bool |
该属性显示系统托盘是否可用。
geometry : rect |
该属性表示系统托盘图标的几何形状。
此属性在 Qt.labs.platform 1.1 (Qt 5.12) 中引入。
该属性显示系统托盘图标。
SystemTrayIcon { icon.mask: true icon.source: "qrc:/images/tray-icon.png" }
该 QML 属性在 Qt.labs.platform 1.1 (Qt 5.12) 中引入。
menu : Menu |
该属性用于保存系统托盘图标的菜单。
supportsMessages : bool |
该属性显示系统托盘图标是否支持通知消息。
另请参阅 showMessage().
tooltip : string |
该属性用于保存系统托盘图标的工具提示。
visible : bool |
该属性显示系统托盘图标是否可见。
默认值为false
。
信号文档
activated(ActivationReason reason) |
该信号在用户激活系统托盘图标时发出。reason 参数指定系统托盘图标是如何被激活的。
可用原因:
常量 | 说明 |
---|---|
SystemTrayIcon.Unknown | 未知原因 |
SystemTrayIcon.Context | 请求了系统托盘图标的上下文菜单 |
SystemTrayIcon.DoubleClick | 双击了系统托盘图标 |
SystemTrayIcon.Trigger | 系统托盘图标被点击 |
SystemTrayIcon.MiddleClick | 用鼠标中键单击了系统托盘图标 |
注: 相应的处理程序是onActivated
。
messageClicked() |
方法文档
void hide() |
隐藏系统托盘图标。
void show() |
显示系统托盘图标。
在msecs 中指定的时间显示系统托盘消息,消息内容包括title 、message 和icon 。
注意: 系统托盘信息取决于系统配置和用户偏好,可能根本不会显示。因此,不应将其作为提供关键信息的唯一手段。
另请参阅 supportsMessages 和messageClicked() 。
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.