Auf dieser Seite

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

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 Taskleiste unter Windows 10.

Die Klasse `QSystemTrayIcon` kann auf den folgenden Plattformen verwendet werden:

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.

KonstanteWertBeschreibung
QSystemTrayIcon::Unknown0Unbekannter Grund
QSystemTrayIcon::Context1Das Kontextmenü für den Taskleisten-Eintrag wurde aufgerufen
QSystemTrayIcon::DoubleClick2Auf 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::Trigger3Auf den Taskleisten-Eintrag wurde geklickt
QSystemTrayIcon::MiddleClick4Der 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.

KonstanteWertBeschreibung
QSystemTrayIcon::NoIcon0Es wird kein Symbol angezeigt.
QSystemTrayIcon::Information1Es wird ein Informationssymbol angezeigt.
QSystemTrayIcon::Warning2Es wird ein Standard-Warnsymbol angezeigt.
QSystemTrayIcon::Critical3Es 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); });
Weitere Beispiele und Vorgehensweisen finden Sie unter „An überladene Slots anschließen“.

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); });
Weitere Beispiele und Vorgehensweisen finden Sie unter „Verbindung zu überladenen Slots herstellen“.

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