QSystemTrayIcon Class
Die Klasse „QSystemTrayIcon“ stellt ein Symbol für eine Anwendung in der Taskleiste bereit. Mehr...
| Überschrift: | #include <QSystemTrayIcon> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| Erbt von: | QObject |
Öffentliche Typen
| enum | ActivationReason { Unknown, Context, DoubleClick, Trigger, MiddleClick } |
| enum | MessageIcon { NoIcon, Information, Warning, Critical } |
Eigenschaften
Öffentliche Funktionen
| 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 |
Öffentliche Slots
| 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) |
Signale
| void | activated(QSystemTrayIcon::ActivationReason reason) |
| void | messageClicked() |
Statische öffentliche Mitglieder
| bool | isSystemTrayAvailable() |
| bool | supportsMessages() |
Neu implementierte geschützte Funktionen
| virtual bool | event(QEvent *e) override |
Ausführliche Beschreibung
Moderne Betriebssysteme bieten in der Regel einen speziellen Bereich auf dem Desktop, der als Systemablage oder Benachrichtigungsbereich bezeichnet wird und in dem lang laufende Anwendungen Symbole und Kurznachrichten anzeigen können.

Die Klasse `QSystemTrayIcon` kann auf den folgenden Plattformen verwendet werden:
- Alle unterstützten Windows-Versionen.
- Alle Linux-Desktopumgebungen, die die D-Bus-Spezifikation „StatusNotifierItem“ implementieren, darunter KDE, Gnome, Xfce, LXQt und DDE.
- Alle Fenstermanager und unabhängigen Tray-Implementierungen für X11, die die freedesktop.org-Spezifikation „XEmbed System Tray“ implementieren.
- Alle unterstützten Versionen von macOS.
Um zu prüfen, ob auf dem Desktop des Benutzers ein System-Tray vorhanden ist, rufen Sie die statische Funktion ` QSystemTrayIcon::isSystemTrayAvailable()` auf.
Um einen Eintrag in der Taskleiste hinzuzufügen, erstellen Sie ein `QSystemTrayIcon`-Objekt, rufen Sie ` setContextMenu()` auf, um ein Kontextmenü für das Symbol bereitzustellen, und rufen Sie ` show()` auf, um es in der Taskleiste sichtbar zu machen. Statusbenachrichtigungen („Balloon-Meldungen“) können jederzeit mit ` showMessage()` angezeigt werden.
Wenn die Taskleiste beim Erstellen eines Taskleisten-Symbols nicht verfügbar ist, später jedoch verfügbar wird, fügt `QSystemTrayIcon` automatisch einen Eintrag für die Anwendung in der Taskleiste hinzu, sofern das Symbol ` visible` ist.
Das Signal „ activated()“ wird ausgelöst, wenn der Benutzer das Symbol aktiviert.
Nur unter X11 erhält QSystemTrayIcon bei Anforderung eines Tooltips ein „ QHelpEvent “ vom Typ „ QEvent::ToolTip “. Zusätzlich empfängt QSystemTrayIcon Mausrad-Ereignisse vom Typ „ QEvent::Wheel “. Diese werden auf keiner anderen Plattform unterstützt. Hinweis: Seit GNOME Shell Version 3.26 werden nicht alle „ QSystemTrayIcon::ActivationReason “ vom System unterstützt, wenn keine Shell-Erweiterungen installiert sind.
Siehe auch „ QDesktopServices“ , „Desktop-Integration“ und „Beispiel für ein System-Tray-Symbol“.
Dokumentation zu Mitgliedstypen
enum QSystemTrayIcon::ActivationReason
Diese Enumeration beschreibt den Grund für die Aktivierung der Taskleiste.
| Konstante | Wert | Beschreibung |
|---|---|---|
QSystemTrayIcon::Unknown | 0 | Unbekannter Grund |
QSystemTrayIcon::Context | 1 | Das Kontextmenü für den Taskleisten-Eintrag wurde aufgerufen |
QSystemTrayIcon::DoubleClick | 2 | Auf den Eintrag in der Taskleiste wurde doppelt geklickt. Hinweis: Unter macOS wird ein Doppelklick nur dann ausgelöst, wenn kein Kontextmenü eingerichtet ist, da sich das Menü beim Klicken mit der Maus öffnet |
QSystemTrayIcon::Trigger | 3 | Auf den Taskleisten-Eintrag wurde geklickt |
QSystemTrayIcon::MiddleClick | 4 | Der Eintrag in der Taskleiste wurde mit der mittleren Maustaste angeklickt |
Siehe auch activated().
enum QSystemTrayIcon::MessageIcon
Diese Enumeration beschreibt das Symbol, das angezeigt wird, wenn eine Sprechblasenmeldung erscheint.
| Konstante | Wert | Beschreibung |
|---|---|---|
QSystemTrayIcon::NoIcon | 0 | Es wird kein Symbol angezeigt. |
QSystemTrayIcon::Information | 1 | Es wird ein Informationssymbol angezeigt. |
QSystemTrayIcon::Warning | 2 | Es wird ein Standard-Warnsymbol angezeigt. |
QSystemTrayIcon::Critical | 3 | Es wird ein Symbol für eine kritische Warnung angezeigt. |
Siehe auch „ QMessageBox “.
Dokumentation zu den Eigenschaften
icon : QIcon
Diese Eigenschaft legt die Größe des System-Tray-Symbols fest
Unter Windows beträgt die Größe des Symbols in der Taskleiste 16x16; unter X11 ist die bevorzugte Größe 22x22. Das Symbol wird bei Bedarf auf die entsprechende Größe skaliert.
Zugriffsfunktionen:
| QIcon | icon() const |
| void | setIcon(const QIcon &icon) |
toolTip : QString
Diese Eigenschaft enthält den Tooltip für den Eintrag in der Taskleiste
Auf einigen Systemen ist die Länge des Tooltips begrenzt. Der Tooltip wird bei Bedarf gekürzt.
Zugriffsfunktionen:
| QString | toolTip() const |
| void | setToolTip(const QString &tip) |
visible : bool
Diese Eigenschaft gibt an, ob das Symbol in der Taskleiste sichtbar ist
Wird diese Eigenschaft auf „true“ gesetzt oder die Methode ` show()` aufgerufen, wird das Symbol in der Taskleiste angezeigt; wird diese Eigenschaft auf „false“ gesetzt oder die Methode ` hide()` aufgerufen, wird es ausgeblendet.
Zugriffsfunktionen:
| bool | isVisible() const |
| void | setVisible(bool visible) |
Dokumentation zu den Member-Funktionen
QSystemTrayIcon::QSystemTrayIcon(QObject *parent = nullptr)
Erstellt ein QSystemTrayIcon-Objekt mit dem angegebenen „ parent “.
Das Symbol ist zunächst nicht sichtbar.
Siehe auch ` visible`.
QSystemTrayIcon::QSystemTrayIcon(const QIcon &icon, QObject *parent = nullptr)
Erstellt ein QSystemTrayIcon-Objekt mit den angegebenen Werten für ` icon ` und ` parent`.
Das Symbol ist zunächst unsichtbar.
Siehe auch ` visible`.
[virtual noexcept] QSystemTrayIcon::~QSystemTrayIcon()
Entfernt das Symbol aus der Taskleiste und gibt alle zugewiesenen Ressourcen frei.
[signal] void QSystemTrayIcon::activated(QSystemTrayIcon::ActivationReason reason)
Dieses Signal wird ausgelöst, wenn der Benutzer das Symbol in der Taskleiste aktiviert. „ reason “ gibt den Grund für die Aktivierung an. Unter QSystemTrayIcon::ActivationReason sind die verschiedenen Gründe aufgeführt.
Siehe auch QSystemTrayIcon::ActivationReason.
QMenu *QSystemTrayIcon::contextMenu() const
Gibt das aktuelle Kontextmenü für den Eintrag in der Taskleiste zurück.
Siehe auch „ setContextMenu()“.
[override virtual protected] bool QSystemTrayIcon::event(QEvent *e)
Implementiert: ` QObject::event(QEvent *e)`.
QRect QSystemTrayIcon::geometry() const
Gibt die Geometrie des System-Tray-Symbols in Bildschirmkoordinaten zurück.
Siehe auch „ visible “.
[slot] void QSystemTrayIcon::hide()
Blendet den Eintrag in der Taskleiste aus.
Siehe auch show() und visible.
[static] bool QSystemTrayIcon::isSystemTrayAvailable()
Gibt „ true “ zurück, wenn die Taskleiste verfügbar ist; andernfalls wird „ false “ zurückgegeben.
Wenn die Taskleiste derzeit nicht verfügbar ist, später aber verfügbar wird, fügt „ QSystemTrayIcon “ automatisch einen Eintrag in die Taskleiste ein, sofern es sich um „ visible “ handelt.
[signal] void QSystemTrayIcon::messageClicked()
Dieses Signal wird ausgelöst, wenn der Benutzer auf die mit ` showMessage()` angezeigte Meldung geklickt hat.
Hinweis: Wir orientieren uns am Verhalten von Microsoft Windows, daher wird das Signal auch ausgelöst, wenn der Benutzer auf ein Taskleistensymbol klickt, bei dem eine Ballonmeldung angezeigt wird.
Siehe auch activated().
void QSystemTrayIcon::setContextMenu(QMenu *menu)
Legt die angegebene Datei „ menu “ als Kontextmenü für das Symbol in der Taskleiste fest.
Das Menü wird angezeigt, wenn der Benutzer durch Klicken mit der Maustaste das Kontextmenü für das Symbol in der Taskleiste aufruft.
Hinweis: Das Symbol in der Taskleiste übernimmt nicht die Verantwortung für das Menü. Sie müssen sicherstellen, dass es zum richtigen Zeitpunkt gelöscht wird, indem Sie das Menü beispielsweise mit einem geeigneten übergeordneten Objekt erstellen.
Siehe auch ` contextMenu()`
[slot] void QSystemTrayIcon::show()
Zeigt das Symbol in der Taskleiste an.
Siehe auch hide() und visible.
[slot] void QSystemTrayIcon::showMessage(const QString &title, const QString &message, QSystemTrayIcon::MessageIcon icon = QSystemTrayIcon::Information, int millisecondsTimeoutHint = 10000)
Zeigt eine Tooltip-Meldung für den Eintrag mit den angegebenen Werten „ title “, „ message “ und „ icon “ für den in „ millisecondsTimeoutHint “ festgelegten Zeitpunkt an. „ title “ und „ message “ müssen Klartext-Zeichenketten sein.
Der Benutzer kann auf die Meldung klicken; in diesem Fall wird das Signal „ messageClicked()“ ausgelöst.
Beachten Sie, dass die Anzeige von Meldungen von der Systemkonfiguration und den Benutzereinstellungen abhängt und dass Meldungen unter Umständen gar nicht angezeigt werden. Daher sollte man sich nicht ausschließlich darauf verlassen, um wichtige Informationen zu vermitteln.
Unter Windows wird das Signal „ millisecondsTimeoutHint “ vom System in der Regel ignoriert, wenn die Anwendung den Fokus hat.
Wurde in Qt 5.2 in einen Slot umgewandelt.
Hinweis: Dieser Slot ist überladen. So verbinden Sie sich mit diesem 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); }); Siehe auch „ show()“ und „ supportsMessages()“.
[slot] void QSystemTrayIcon::showMessage(const QString &title, const QString &message, const QIcon &icon, int millisecondsTimeoutHint = 10000)
Zeigt eine Tooltip-Meldung für den Eintrag mit den angegebenen Werten „ title “, „ message “ und dem benutzerdefinierten Symbol „ icon “ für die unter „ millisecondsTimeoutHint “ angegebene Zeit an.
Hinweis: Dieser Slot ist überladen. So stellen Sie eine Verbindung zu diesem Slot her:
// 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()
Gibt „ true “ zurück, wenn die Taskleiste Balloon-Meldungen unterstützt; andernfalls wird „ false “ zurückgegeben.
Siehe auch 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.