系统托盘图标 QML 类型

系统托盘图标。 更多信息...

导入声明import Qt.labs.platform
继承

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

可用性

原生系统托盘图标目前在以下平台可用

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

此属性持有系统托盘图标的几何形状。

此属性自Qt.labs.platform 1.1 (Qt 5.12)起引入。


icon group

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

此属性持有系统托盘图标。

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

此QML属性自Qt.labs.platform 1.1 (Qt 5.12)起引入。


此属性持有系统托盘图标的一个菜单。


supportsMessages : bool [只读]

此属性持有系统托盘图标是否支持通知消息。

另请参阅: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)

显示带有指定titlemessageicon的系统托盘消息,持续时间由msecs指定。

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

另请参阅:supportsMessagesmessageClicked()。


© 2024 Qt公司有限公司。本文件中的文档贡献属于其各自的版权所有者。提供的文档根据免费软件基金会发布的GNU自由文档许可协议版本1.3的条款进行许可。Qt和相应的标识是芬兰及其它国家/地区的Qt公司有限公司的商标。所有其他商标都是各自所有者的财产。