QSystemTrayIcon Class

Die Klasse QSystemTrayIcon stellt ein Symbol für eine Anwendung im Systemtray bereit. Mehr...

Kopfzeile: #include <QSystemTrayIcon>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Vererbt: 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

Reimplementierte geschützte Funktionen

virtual bool event(QEvent *e) override

Ausführliche Beschreibung

Moderne Betriebssysteme stellen in der Regel einen speziellen Bereich auf dem Desktop zur Verfügung, den sogenannten Systemtray oder Benachrichtigungsbereich, in dem lang laufende Anwendungen Symbole und Kurznachrichten anzeigen können.

The system tray on Windows 10.

Die Klasse QSystemTrayIcon kann auf den folgenden Plattformen verwendet werden:

Um zu überprüfen, ob ein Systemtray auf dem Desktop des Benutzers vorhanden ist, rufen Sie die statische Funktion QSystemTrayIcon::isSystemTrayAvailable() auf.

Um einen Systemtray-Eintrag hinzuzufügen, erstellen Sie ein QSystemTrayIcon-Objekt, rufen setContextMenu() auf, um ein Kontextmenü für das Symbol bereitzustellen, und rufen show() auf, um es im Systemtray sichtbar zu machen. Statusmeldungen ("Balloon Messages") können jederzeit mit showMessage() angezeigt werden.

Wenn der Systemtray nicht verfügbar ist, wenn ein Systemtray-Symbol erstellt wird, aber später verfügbar wird, fügt QSystemTrayIcon automatisch einen Eintrag für die Anwendung im Systemtray hinzu, wenn das Symbol visible ist.

Das Signal activated() wird ausgegeben, wenn der Benutzer das Symbol aktiviert.

Nur unter X11, wenn ein Tooltip angefordert wird, empfängt das QSystemTrayIcon ein QHelpEvent vom Typ QEvent::ToolTip. Zusätzlich empfängt das QSystemTrayIcon Rad-Ereignisse vom Typ QEvent::Wheel. Diese werden auf keiner anderen Plattform unterstützt. Hinweis: Seit GNOME Shell Version 3.26 werden nicht mehr alle QSystemTrayIcon::ActivationReason vom System unterstützt, wenn keine Shell-Erweiterungen installiert sind.

Siehe auch QDesktopServices, Desktop-Integration und System Tray Icon Beispiel.

Dokumentation der Mitgliedstypen

enum QSystemTrayIcon::ActivationReason

Diese Aufzählung beschreibt den Grund für die Aktivierung des Systemtrays.

KonstanteWertBeschreibung
QSystemTrayIcon::Unknown0Unbekannter Grund
QSystemTrayIcon::Context1Das Kontextmenü für den Tray-Eintrag wurde aufgerufen
QSystemTrayIcon::DoubleClick2Der Systemtray-Eintrag wurde doppelt angeklickt.

Hinweis: Unter macOS wird ein Doppelklick nur dann ausgegeben, wenn kein Kontextmenü gesetzt ist, da das Menü beim Drücken der Maus geöffnet wird.

KonstanteWertBeschreibung
QSystemTrayIcon::Trigger3Der Tray-Eintrag wurde angeklickt
QSystemTrayIcon::MiddleClick4Der Systemtray-Eintrag wurde mit der mittleren Maustaste angeklickt

Siehe auch activated().

enum QSystemTrayIcon::MessageIcon

Diese Aufzählung beschreibt das Symbol, das angezeigt wird, wenn eine Sprechblasenmeldung angezeigt wird.

KonstanteWertBeschreibung
QSystemTrayIcon::NoIcon0Es wird kein Symbol angezeigt.
QSystemTrayIcon::Information1Es wird ein Informationssymbol angezeigt.
QSystemTrayIcon::Warning2Es wird ein Standardsymbol für eine Warnung angezeigt.
QSystemTrayIcon::Critical3Es wird ein Symbol für eine kritische Warnung angezeigt.

Siehe auch QMessageBox.

Eigenschaft Dokumentation

icon : QIcon

Diese Eigenschaft enthält das Symbol der Taskleiste

Unter Windows beträgt die Größe des Taskleistensymbols 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 ggf. abgeschnitten.

Zugriffsfunktionen:

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

visible : bool

Diese Eigenschaft gibt an, ob der Eintrag in der Systemablage sichtbar ist

Wenn Sie diese Eigenschaft auf true setzen oder show() aufrufen, wird das Taskleistensymbol sichtbar; wenn Sie diese Eigenschaft auf false setzen oder hide() aufrufen, wird es ausgeblendet.

Zugriffsfunktionen:

bool isVisible() const
void setVisible(bool visible)

Dokumentation der Mitgliedsfunktionen

QSystemTrayIcon::QSystemTrayIcon(QObject *parent = nullptr)

Konstruiert ein QSystemTrayIcon-Objekt mit der angegebenen parent.

Das Symbol ist zunächst unsichtbar.

Siehe auch visible.

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

Konstruiert ein QSystemTrayIcon-Objekt mit der angegebenen 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 ausgegeben, wenn der Benutzer das Taskleistensymbol aktiviert. reason gibt den Grund für die Aktivierung an. QSystemTrayIcon::ActivationReason zählt die verschiedenen Gründe auf.

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)

Reimplements: QObject::event(QEvent *e).

QRect QSystemTrayIcon::geometry() const

Gibt die Geometrie des Taskleistensymbols 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 Systemablage derzeit nicht verfügbar ist, aber später verfügbar wird, fügt QSystemTrayIcon automatisch einen Eintrag in der Systemablage hinzu, wenn sie visible ist.

[signal] void QSystemTrayIcon::messageClicked()

Dieses Signal wird ausgegeben, wenn der Benutzer auf die mit showMessage() angezeigte Nachricht geklickt hat.

Hinweis: Wir folgen dem Verhalten von Microsoft Windows, so dass das Signal auch ausgegeben wird, wenn der Benutzer auf ein Tray-Symbol klickt, das eine Sprechblasenmeldung enthält.

Siehe auch activated().

void QSystemTrayIcon::setContextMenu(QMenu *menu)

Legt fest, dass das angegebene menu das Kontextmenü für das Taskleistensymbol ist.

Das Menü wird angezeigt, wenn der Benutzer das Kontextmenü für das Taskleistensymbol per Mausklick anfordert.

Hinweis: Das Taskleistensymbol übernimmt nicht die Verantwortung für das Menü. Sie müssen sicherstellen, dass es zu gegebener Zeit gelöscht wird, indem Sie z. B. das Menü 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 Sprechblasenmeldung für den Eintrag mit dem angegebenen title, message und icon für die in millisecondsTimeoutHint angegebene Zeit an. title und message müssen reine Textstrings sein.

Die Nachricht kann vom Benutzer angeklickt werden; das Signal messageClicked() wird ausgegeben, wenn dies geschieht.

Beachten Sie, dass die Anzeige von Meldungen von der Systemkonfiguration und den Benutzereinstellungen abhängt und dass Meldungen möglicherweise überhaupt nicht angezeigt werden. Daher sollte man sich nicht darauf verlassen, dass es das einzige Mittel zur Bereitstellung kritischer Informationen ist.

Unter Windows wird millisecondsTimeoutHint normalerweise vom System ignoriert, wenn die Anwendung den Fokus hat.

Wurde in Qt 5.2 in einen Slot umgewandelt.

Siehe auch show() und supportsMessages().

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

Diese Funktion überlastet showMessage().

Zeigt eine Sprechblasenmeldung für den Eintrag mit dem angegebenen title, message und dem benutzerdefinierten Symbol icon für die in millisecondsTimeoutHint angegebene Zeit an.

[static] bool QSystemTrayIcon::supportsMessages()

Gibt true zurück, wenn die Systemablage Sprechblasenmeldungen unterstützt; andernfalls false.

Siehe auch showMessage().

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