Sur cette page

SystemTrayIcon QML Type

Icône de la barre d'état système. Plus d'informations...

Import Statement: import Qt.labs.platform
Inherits:

QtObject

Propriétés

Signaux

Méthodes

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

Description détaillée

Le type SystemTrayIcon fournit une icône pour une application dans la barre d'état système.

De nombreuses plates-formes de bureau fournissent une zone de notification ou une barre d'état système spéciale, dans laquelle les applications peuvent afficher des icônes et des messages de notification.

Icône de la barre d'état système

L'exemple suivant montre comment créer une icône de barre d'état système et comment utiliser le signal activated() :

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

    onActivated: {
        window.show()
        window.raise()
        window.requestActivate()
    }
}

Menu de la barre d'état système

SystemTrayIcon peut avoir un menu qui s'ouvre lorsque l'icône est activée.

Icône de la barre d'état système avec menu

L'exemple suivant montre comment attribuer une adresse Menu à une icône de la barre d'état système :

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

    menu: Menu {
        MenuItem {
            text: qsTr("Quit")
            onTriggered: Qt.quit()
        }
    }
}

Messages de notification

SystemTrayIcon peut afficher des messages de notification.

Icône de la barre d'état système message popup

L'exemple suivant montre comment afficher un message de notification à l'aide de showMessage() et comment utiliser le signal 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.")
}

Disponibilité

L'icône native de la barre d'état système est actuellement disponible à l'adresse available sur les plates-formes suivantes :

Le module Qt Labs Platform utilise Qt Widgets comme solution de repli sur les plateformes qui ne disposent pas d'une implémentation native. Par conséquent, les applications qui utilisent des types du module Qt Labs Platform doivent être liées à QtWidgets et utiliser QApplication au lieu de QGuiApplication.

Pour établir un lien avec la bibliothèque QtWidgets, ajoutez ce qui suit à votre fichier de projet qmake :

QT += widgets

Créez une instance de QApplication dans main():

#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();
}

Note : La compatibilité des types dans les modules Qt.labs n'est pas garantie dans les versions futures.

Voir aussi Menu.

Documentation sur les propriétés

available : bool [read-only]

Cette propriété indique si la barre d'état système est disponible.

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

Cette propriété contient la géométrie de l'icône de la barre d'état système.

Cette propriété a été introduite dans 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)]

Cette propriété contient l'icône de la barre d'état système.

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

Ces propriétés ont été introduites dans Qt.labs.platform 1.1 (Qt 5.12).

Cette propriété contient un menu pour l'icône de la barre d'état système.

supportsMessages : bool [read-only]

Cette propriété indique si l'icône de la barre d'état système prend en charge les messages de notification.

Voir aussi showMessage().

tooltip : string

Cette propriété contient l'info-bulle de l'icône de la barre d'état système.

visible : bool

Cette propriété indique si l'icône de la barre d'état système est visible.

La valeur par défaut est false.

Documentation sur le signal

activated(ActivationReason reason)

Ce signal est émis lorsque l'icône de la barre d'état système est activée par l'utilisateur. L'argument reason indique comment l'icône de la barre d'état système a été activée.

Motifs disponibles :

ConstanteDescription
SystemTrayIcon.UnknownRaison inconnue
SystemTrayIcon.ContextLe menu contextuel de l'icône de la barre d'état système a été demandé
SystemTrayIcon.DoubleClickL'icône de la barre d'état système a été double-cliquée
SystemTrayIcon.TriggerL'icône de la barre d'état système a été cliquée
SystemTrayIcon.MiddleClickL'icône de la barre d'état système a été cliquée avec le bouton du milieu de la souris.

Remarque : le gestionnaire correspondant est onActivated.

messageClicked()

Ce signal est émis lorsque l'utilisateur clique sur un message de notification.

Remarque : le gestionnaire correspondant est onMessageClicked.

Voir également showMessage().

Documentation de la méthode

void hide()

Masque l'icône de la barre d'état système.

void show()

Affiche l'icône de la barre d'état système.

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

Affiche un message dans la barre d'état système avec les données title, message et icon pour la durée spécifiée dans msecs.

Remarque : les messages de la barre d'état système dépendent de la configuration du système et des préférences de l'utilisateur, et peuvent ne pas apparaître du tout. Par conséquent, ils ne doivent pas être considérés comme le seul moyen de fournir des informations critiques.

Voir également supportsMessages et 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.