本页内容

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"
}

这些属性是在 Qt Labs Platform 1.1(Qt 5.12)中引入的。

此属性用于设置系统托盘图标的菜单。

supportsMessages : bool [read-only]

该属性用于指定系统托盘图标是否支持通知消息。

另请参阅 showMessage()。

tooltip : string

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

visible : bool

该属性控制系统托盘图标是否可见。

默认值为false 。

Signal 文档

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 中指定的时间段内,显示一条包含给定title 、message 和icon 的系统托盘消息。

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

另请参阅 supportsMessages 和messageClicked()。

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