Sur cette page

QSystemTrayIcon Class

La classe QSystemTrayIcon fournit une icône pour une application dans la barre d'état système. Plus d'informations...

En-tête : #include <QSystemTrayIcon>
CMake : find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake : QT += widgets
Héritages : QObject

Types publics

enum ActivationReason { Unknown, Context, DoubleClick, Trigger, MiddleClick }
enum MessageIcon { NoIcon, Information, Warning, Critical }

Propriétés

Fonctions publiques

QSystemTrayIcon(QObject *parent = nullptr)
QSystemTrayIcon(const QIcon &icon, QObject *parent = nullptr)
virtual ~QSystemTrayIcon()
QMenu *contextMenu() const
QRect geometry() const
QIcon icon() const
bool isVisible() const
void setContextMenu(QMenu *menu)
void setIcon(const QIcon &icon)
void setToolTip(const QString &tip)
QString toolTip() const

Emplacements publics

void hide()
void setVisible(bool visible)
void show()
void showMessage(const QString &title, const QString &message, QSystemTrayIcon::MessageIcon icon = QSystemTrayIcon::Information, int millisecondsTimeoutHint = 10000)
void showMessage(const QString &title, const QString &message, const QIcon &icon, int millisecondsTimeoutHint = 10000)

Signaux

void activated(QSystemTrayIcon::ActivationReason reason)
void messageClicked()

Membres publics statiques

Fonctions protégées réimplémentées

virtual bool event(QEvent *e) override

Description détaillée

Les systèmes d'exploitation modernes prévoient généralement une zone spéciale sur le bureau, appelée zone de notification, où les applications en cours d'exécution peuvent afficher des icônes et de courts messages.

La barre d'état système sous Windows 10.

La classe QSystemTrayIcon peut être utilisée sur les plateformes suivantes :

Pour vérifier si une barre d'état système est présente sur le bureau de l'utilisateur, appelez la fonction statique QSystemTrayIcon::isSystemTrayAvailable().

Pour ajouter une entrée dans la barre d'état système, créez un objet QSystemTrayIcon, appelez setContextMenu() pour fournir un menu contextuel pour l'icône, et appelez show() pour la rendre visible dans la barre d'état système. Des messages de notification d'état ("balloon messages") peuvent être affichés à tout moment à l'aide de showMessage().

Si la barre d'état système n'est pas disponible lors de la construction d'une icône de barre d'état système, mais qu'elle le devient par la suite, QSystemTrayIcon ajoutera automatiquement une entrée pour l'application dans la barre d'état système si l'icône est visible.

Le signal activated() est émis lorsque l'utilisateur active l'icône.

Uniquement sous X11, lorsqu'une info-bulle est demandée, l'icône QSystemTrayIcon reçoit un signal QHelpEvent de type QEvent::ToolTip. En outre, l'icône QSystemTrayIcon reçoit des événements de roue de type QEvent::Wheel. Ces événements ne sont pris en charge sur aucune autre plate-forme. Remarque : depuis la version 3.26 du GNOME Shell, toutes les adresses QSystemTrayIcon::ActivationReason ne sont pas prises en charge par le système sans l'installation d'extensions de l'interpréteur de commandes.

Voir aussi QDesktopServices, Desktop Integration, et System Tray Icon Example.

Documentation sur les types de membres

enum QSystemTrayIcon::ActivationReason

Cette énumération décrit la raison pour laquelle la barre d'état système a été activée.

ConstanteValeurDescription de la raison
QSystemTrayIcon::Unknown0Raison inconnue
QSystemTrayIcon::Context1Le menu contextuel de l'entrée de la barre d'état système a été demandé
QSystemTrayIcon::DoubleClick2L'entrée de la barre d'état système a fait l'objet d'un double clic.

Remarque : sous macOS, un double clic n'est émis que si aucun menu contextuel n'est défini, car le menu s'ouvre lorsque l'on appuie sur la souris.

ConstanteValeurDescription
QSystemTrayIcon::Trigger3L'entrée de la barre d'état système a été cliquée
QSystemTrayIcon::MiddleClick4L'entrée de la barre d'état système a été cliquée avec le bouton du milieu de la souris.

Voir aussi activated().

enum QSystemTrayIcon::MessageIcon

Cette énumération décrit l'icône qui s'affiche lorsqu'un message de type ballon est affiché.

ConstanteValeurDescription de l'icône
QSystemTrayIcon::NoIcon0Aucune icône n'est affichée.
QSystemTrayIcon::Information1Une icône d'information est affichée.
QSystemTrayIcon::Warning2Une icône d'avertissement standard est affichée.
QSystemTrayIcon::Critical3Une icône d'avertissement critique est affichée.

Voir également QMessageBox.

Documentation sur les propriétés

icon : QIcon

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

Sous Windows, la taille de l'icône de la barre d'état système est de 16x16 ; sous X11, la taille préférée est de 22x22. L'icône sera redimensionnée à la taille appropriée si nécessaire.

Fonctions d'accès :

QIcon icon() const
void setIcon(const QIcon &icon)

toolTip : QString

Cette propriété contient l'info-bulle de l'entrée de la barre d'état système

Sur certains systèmes, la longueur de l'info-bulle est limitée. L'info-bulle sera tronquée si nécessaire.

Fonctions d'accès :

QString toolTip() const
void setToolTip(const QString &tip)

visible : bool

Cette propriété indique si l'entrée de la barre d'état système est visible

La définition de cette propriété à true ou l'appel à show() rend l'icône de la barre d'état système visible ; la définition de cette propriété à false ou l'appel à hide() la cache.

Fonctions d'accès :

bool isVisible() const
void setVisible(bool visible)

Documentation des fonctions membres

QSystemTrayIcon::QSystemTrayIcon(QObject *parent = nullptr)

Construit un objet QSystemTrayIcon avec l'adresse parent.

L'icône est initialement invisible.

Voir également visible.

QSystemTrayIcon::QSystemTrayIcon(const QIcon &icon, QObject *parent = nullptr)

Construit un objet QSystemTrayIcon avec les données icon et parent.

L'icône est initialement invisible.

Voir également visible.

[virtual noexcept] QSystemTrayIcon::~QSystemTrayIcon()

Supprime l'icône de la barre d'état système et libère toutes les ressources allouées.

[signal] void QSystemTrayIcon::activated(QSystemTrayIcon::ActivationReason reason)

Ce signal est émis lorsque l'utilisateur active l'icône de la barre d'état système. reason spécifie la raison de l'activation. QSystemTrayIcon::ActivationReason énumère les différentes raisons.

Voir aussi QSystemTrayIcon::ActivationReason.

QMenu *QSystemTrayIcon::contextMenu() const

Renvoie le menu contextuel actuel pour l'entrée de la barre d'état système.

Voir aussi setContextMenu().

[override virtual protected] bool QSystemTrayIcon::event(QEvent *e)

Réimplémente : QObject::event(QEvent *e).

QRect QSystemTrayIcon::geometry() const

Renvoie la géométrie de l'icône de la barre d'état système en coordonnées d'écran.

Voir aussi visible.

[slot] void QSystemTrayIcon::hide()

Cache l'entrée de la barre d'état système.

Voir aussi show() et visible.

[static] bool QSystemTrayIcon::isSystemTrayAvailable()

Renvoie true si la barre d'état système est disponible ; sinon, il renvoie false.

Si la barre d'état système est actuellement indisponible mais devient disponible plus tard, QSystemTrayIcon ajoutera automatiquement une entrée dans la barre d'état système si elle est visible.

[signal] void QSystemTrayIcon::messageClicked()

Ce signal est émis lorsque l'utilisateur a cliqué sur le message affiché à l'aide de showMessage().

Remarque : comme nous suivons le comportement de Microsoft Windows, ce signal est également émis lorsque l'utilisateur clique sur une icône de la barre d'état système avec un message affiché sous forme de bulle.

Voir également activated().

void QSystemTrayIcon::setContextMenu(QMenu *menu)

Définit le site menu spécifié comme étant le menu contextuel de l'icône de la barre d'état système.

Le menu apparaîtra lorsque l'utilisateur demandera le menu contextuel de l'icône de la barre d'état système en cliquant sur le bouton de la souris.

Remarque : l'icône de la barre d'état système n'est pas propriétaire du menu. Vous devez vous assurer qu'elle est supprimée au moment opportun, par exemple en créant le menu avec un objet parent approprié.

Voir aussi contextMenu().

[slot] void QSystemTrayIcon::show()

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

Voir aussi hide() et visible.

[slot] void QSystemTrayIcon::showMessage(const QString &title, const QString &message, QSystemTrayIcon::MessageIcon icon = QSystemTrayIcon::Information, int millisecondsTimeoutHint = 10000)

Affiche un message en forme de ballon pour l'entrée correspondant à title, message et icon pour l'heure spécifiée dans millisecondsTimeoutHint. title et message doivent être des chaînes de texte en clair.

Le message peut être cliqué par l'utilisateur ; le signal messageClicked() est émis lorsque cela se produit.

Notez que l'affichage des messages dépend de la configuration du système et des préférences de l'utilisateur, et que les messages peuvent ne pas apparaître du tout. Il ne faut donc pas s'y fier comme au seul moyen de fournir des informations critiques.

Sous Windows, l'adresse millisecondsTimeoutHint est généralement ignorée par le système lorsque l'application est au centre de l'attention.

a été transformé en slot dans Qt 5.2.

Note : Ce slot est surchargé. Pour se connecter à ce slot :

// Connect using qOverload:
connect(sender, &SenderClass::signal,
        systemTrayIcon, qOverload(&QSystemTrayIcon::showMessage));

// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
        systemTrayIcon, [receiver = systemTrayIcon](const QString &title, const QString &message, QSystemTrayIcon::MessageIcon icon, int millisecondsTimeoutHint) { receiver->showMessage(title, message, icon, millisecondsTimeoutHint); });
Pour plus d'exemples et d'approches, voir se connecter à des slots surchargés.

Voir aussi show() et supportsMessages().

[slot] void QSystemTrayIcon::showMessage(const QString &title, const QString &message, const QIcon &icon, int millisecondsTimeoutHint = 10000)

Affiche un message en forme de ballon pour l'entrée avec les données title, message, et l'icône personnalisée icon pour l'heure spécifiée dans millisecondsTimeoutHint.

Note : Ce slot est surchargé. Pour se connecter à ce slot :

// Connect using qOverload:
connect(sender, &SenderClass::signal,
        systemTrayIcon, qOverload(&QSystemTrayIcon::showMessage));

// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
        systemTrayIcon, [receiver = systemTrayIcon](const QString &title, const QString &message, const QIcon &icon, int millisecondsTimeoutHint) { receiver->showMessage(title, message, icon, millisecondsTimeoutHint); });
Pour plus d'exemples et d'approches, voir se connecter à des slots surchargés.

[static] bool QSystemTrayIcon::supportsMessages()

Renvoie true si la barre d'état système prend en charge les messages en forme de ballons ; sinon, renvoie false.

Voir aussi showMessage().

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