系统托盘图标 QML 类型
系统托盘图标。 更多信息...
导入声明 | import Qt.labs.platform |
继承 |
属性
- available : bool
- geometry : rect
(自 Qt.labs.platform 1.1 (Qt 5.12)起)
- icon
(自 Qt.labs.platform 1.1 (Qt 5.12)起)
- icon.mask : bool
(自 Qt.labs.platform 1.1 (Qt 5.12)起)
- icon.name : string
(自 Qt.labs.platform 1.1 (Qt 5.12)起)
- icon.source : url
(自 Qt.labs.platform 1.1 (Qt 5.12)起)
- icon.mask : bool
- menu : 菜单
- supportsMessages : bool
- tooltip : string
- visible : bool
信号
- activated(激活原因 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.") }
可用性
原生系统托盘图标目前在以下平台可用
- 所有实现了freedesktop.org XEmbed系统托盘规范的X11窗口管理器和独立托盘实现。
- 所有实现了freedesktop.org D-Bus StatusNotifierItem规范的桌面环境,包括最近的KDE和Unity版本。
- 所有支持的macOS版本。请注意,在OS X 10.8(山狮)之前的版本中显示消息之前,必须安装Growl通知系统。
Qt Labs平台模块在平台没有可用原生实现的情况下使用Qt Widgets作为后备。因此,使用Qt Labs平台模块的类型的应用程序应该链接到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模块中的类型在未来版本中不一定保持兼容。
另请参阅:菜单。
属性文档
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() |
显示系统托盘图标。
显示带有指定title、message和icon的系统托盘消息,持续时间由msecs指定。
注意:系统托盘消息依赖于系统配置和用户偏好设置,可能根本不显示。因此,不应将其作为提供关键信息的唯一手段。
另请参阅:supportsMessages和messageClicked()。
© 2024 Qt公司有限公司。本文件中的文档贡献属于其各自的版权所有者。提供的文档根据免费软件基金会发布的GNU自由文档许可协议版本1.3的条款进行许可。Qt和相应的标识是芬兰及其它国家/地区的Qt公司有限公司的商标。所有其他商标都是各自所有者的财产。