SystemTrayIcon QML Type

系统托盘图标更多

Import Statement: import Qt.labs.platform
Inherits:

QtObject

属性

信号

方法

  • 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

在没有本地实现的平台上,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 [read-only]

该属性显示系统托盘是否可用。


geometry : rect [since Qt.labs.platform 1.1 (Qt 5.12)]

该属性表示系统托盘图标的几何形状。

此属性在 Qt.labs.platform 1.1 (Qt 5.12) 中引入。


icon group

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)]

该属性显示系统托盘图标。

SystemTrayIcon {
    icon.mask: true
    icon.source: "qrc:/images/tray-icon.png"
}

该 QML 属性在 Qt.labs.platform 1.1 (Qt 5.12) 中引入。


该属性用于保存系统托盘图标的菜单。


supportsMessages : bool [read-only]

该属性显示系统托盘图标是否支持通知消息。

另请参阅 showMessage().


tooltip : string

该属性用于保存系统托盘图标的工具提示。


visible : bool

该属性显示系统托盘图标是否可见。

默认值为false


信号文档

activated(ActivationReason reason)

该信号在用户激活系统托盘图标时发出。reason 参数指定系统托盘图标是如何被激活的。

可用原因:

常量说明
SystemTrayIcon.Unknown未知原因
SystemTrayIcon.Context请求了系统托盘图标的上下文菜单
SystemTrayIcon.DoubleClick双击了系统托盘图标
SystemTrayIcon.Trigger系统托盘图标被点击
SystemTrayIcon.MiddleClick用鼠标中键单击了系统托盘图标

注: 相应的处理程序是onActivated


messageClicked()

当用户单击通知消息时发出该信号。

注: 相应的处理程序是onMessageClicked

另请参阅 showMessage() 。


方法文档

void hide()

隐藏系统托盘图标。


void show()

显示系统托盘图标。


void showMessage(string title, string message, MessageIcon icon, int msecs)

msecs 中指定的时间显示系统托盘消息,消息内容包括titlemessageicon

注意: 系统托盘信息取决于系统配置和用户偏好,可能根本不会显示。因此,不应将其作为提供关键信息的唯一手段。

另请参阅 supportsMessagesmessageClicked() 。


© 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.