QSystemTrayIcon Class
La classe QSystemTrayIcon permet d'afficher une icône représentant une application dans la barre d'état système. En savoir plus...
| En-tête : | #include <QSystemTrayIcon> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake : | QT += widgets |
| Hérite de : | 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
| bool | isSystemTrayAvailable() |
| bool | supportsMessages() |
Fonctions protégées réimplémentées
| virtual bool | event(QEvent *e) override |
Description détaillée
Les systèmes d'exploitation modernes fournissent généralement une zone spéciale sur le bureau, appelée « barre d'état système » ou « zone de notification », où les applications s'exécutant en arrière-plan peuvent afficher des icônes et de courts messages.

La classe QSystemTrayIcon peut être utilisée sur les plateformes suivantes :
- Toutes les versions prises en charge de Windows.
- Tous les environnements de bureau Linux qui implémentent la spécification D-Bus StatusNotifierItem, notamment KDE, Gnome, Xfce, LXQt et DDE.
- Tous les gestionnaires de fenêtres et implémentations indépendantes de la barre d’état pour X11 qui implémentent la spécification freedesktop.org XEmbed relative à la barre d’état.
- Toutes les versions prises en charge de macOS.
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 à l’icône, puis appelez ` show()` pour la rendre visible dans la barre d’état système. Les messages de notification d’état (« messages en bulle ») peuvent être affichés à tout moment à l’aide de ` showMessage()`.
Si la barre d’état système n’est pas disponible au moment de la création 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 de type « visible ».
Le signal activated() est émis lorsque l’utilisateur active l’icône.
Uniquement sous X11, lorsqu’une info-bulle est demandée, QSystemTrayIcon reçoit un signal « QHelpEvent » de type « QEvent::ToolTip ». De plus, QSystemTrayIcon reçoit des événements de molette de type « QEvent::Wheel ». Ceux-ci ne sont pris en charge sur aucune autre plateforme. Remarque : depuis la version 3.26 de GNOME Shell, toutes les « QSystemTrayIcon::ActivationReason » ne sont pas prises en charge par le système si aucune extension du shell n’est installée.
Voir également QDesktopServices, Intégration au bureau et Exemple d’icône de la barre d’état système.
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.
| Constante | Valeur | Description |
|---|---|---|
QSystemTrayIcon::Unknown | 0 | Raison inconnue |
QSystemTrayIcon::Context | 1 | Le menu contextuel de l'entrée de la barre d'état système a été demandé |
QSystemTrayIcon::DoubleClick | 2 | L'icône 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 lorsqu'on clique avec la souris |
QSystemTrayIcon::Trigger | 3 | L'icône de la barre d'état système a été cliquée |
QSystemTrayIcon::MiddleClick | 4 | On a cliqué sur l'icône de la barre d'état système avec le bouton central de la souris |
Voir également activated().
enum QSystemTrayIcon::MessageIcon
Cette énumération décrit l'icône qui s'affiche lorsqu'un message en bulle est présenté.
| Constante | Valeur | Description |
|---|---|---|
QSystemTrayIcon::NoIcon | 0 | Aucune icône n'est affichée. |
QSystemTrayIcon::Information | 1 | Une icône d'information s'affiche. |
QSystemTrayIcon::Warning | 2 | Une icône d'avertissement standard s'affiche. |
QSystemTrayIcon::Critical | 3 | Une icône d'avertissement critique s'affiche. |
Voir également QMessageBox.
Documentation sur les propriétés
icon : QIcon
Cette propriété définit 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 recommandé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'icône 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'icône de la barre d'état système est visible
Définir cette propriété sur « true » ou appeler la méthode show() rend l’icône de la barre d’état système visible ; définir cette propriété sur « false » ou appeler la méthode hide() la masque.
Fonctions d’accès :
| bool | isVisible() const |
| void | setVisible(bool visible) |
Documentation des fonctions membres
QSystemTrayIcon::QSystemTrayIcon(QObject *parent = nullptr)
Crée un objet QSystemTrayIcon à partir de l'parent on fournie.
L'icône est initialement invisible.
Voir aussi visible.
QSystemTrayIcon::QSystemTrayIcon(const QIcon &icon, QObject *parent = nullptr)
Crée un objet QSystemTrayIcon avec les paramètres icon et parent fournis.
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. La méthode ` reason ` spécifie la raison de l'activation. La méthode ` QSystemTrayIcon::ActivationReason ` répertorie les différentes raisons.
Voir également QSystemTrayIcon::ActivationReason.
QMenu *QSystemTrayIcon::contextMenu() const
Renvoie le menu contextuel actuel de l'icône 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()
Masque l'icône dans la barre d'état système.
Voir également show() et visible.
[static] bool QSystemTrayIcon::isSystemTrayAvailable()
Renvoie « true » si la barre d'état système est disponible ; sinon, renvoie « false ».
Si la barre d’état système n’est pas disponible pour le moment mais le devient ultérieurement, QSystemTrayIcon ajoutera automatiquement une entrée dans la barre d’état système si celle-ci est de type visible.
[signal] void QSystemTrayIcon::messageClicked()
Ce signal est émis lorsque l'utilisateur a cliqué sur le message affiché à l'aide de la fonction showMessage().
Remarque : nous suivons le comportement de Microsoft Windows ; le signal est donc également émis lorsque l'utilisateur clique sur une icône de la barre d'état système accompagnée d'une bulle d'information.
Voir également activated().
void QSystemTrayIcon::setContextMenu(QMenu *menu)
Définit l'menu spécifiée comme menu contextuel de l'icône de la barre d'état système.
Le menu s'affichera lorsque l'utilisateur demandera le menu contextuel de l'icône de la barre d'état système en cliquant avec le bouton de la souris.
Remarque : l’icône de la barre d’état système ne prend pas possession du menu. Vous devez vous assurer qu’il soit supprimé 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 également hide() et visible.
[slot] void QSystemTrayIcon::showMessage(const QString &title, const QString &message, QSystemTrayIcon::MessageIcon icon = QSystemTrayIcon::Information, int millisecondsTimeoutHint = 10000)
Affiche une infobulle pour l'entrée dont les paramètres sont les suivants : ` title`, ` message ` et ` icon `, pour la durée spécifiée dans ` millisecondsTimeoutHint`. Les paramètres ` title ` et ` message ` doivent être des chaînes de texte brut.
L'utilisateur peut cliquer sur un message ; le signal messageClicked() est alors émis.
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 s’afficher du tout. Par conséquent, il ne faut pas s’y fier comme seul moyen de fournir des informations critiques.
Sous Windows, le signal ` millisecondsTimeoutHint ` est généralement ignoré par le système lorsque l’application a le focus.
A été transformé en slot dans Qt 5.2.
Remarque : ce slot est surchargé. Pour vous 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); }); Voir également ` show()` et ` supportsMessages()`.
[slot] void QSystemTrayIcon::showMessage(const QString &title, const QString &message, const QIcon &icon, int millisecondsTimeoutHint = 10000)
Affiche une infobulle pour l'entrée avec l'title, l'message et l'icône personnalisée icon indiqués, pour la durée spécifiée dans millisecondsTimeoutHint.
Remarque : ce slot est surchargé. Pour vous 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); }); [static] bool QSystemTrayIcon::supportsMessages()
Renvoie « true » si la barre d'état système prend en charge les messages contextuels ; sinon, renvoie « false ».
Voir également 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.