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
bool | isSystemTrayAvailable() |
bool | supportsMessages() |
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.
Die Klasse QSystemTrayIcon kann auf den folgenden Plattformen verwendet werden:
- Alle unterstützten Versionen von Windows.
- Alle Linux-Desktop-Umgebungen, die die D-Bus StatusNotifierItem-Spezifikation implementieren, einschließlich KDE, Gnome, Xfce, LXQt und DDE.
- Alle Fenstermanager und unabhängigen Tray-Implementierungen für X11, die die freedesktop.org XEmbed-Systemtray-Spezifikation implementieren.
- Alle unterstützten Versionen von macOS.
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.
Konstante | Wert | Beschreibung |
---|---|---|
QSystemTrayIcon::Unknown | 0 | Unbekannter Grund |
QSystemTrayIcon::Context | 1 | Das Kontextmenü für den Tray-Eintrag wurde aufgerufen |
QSystemTrayIcon::DoubleClick | 2 | Der 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.
Konstante | Wert | Beschreibung |
---|---|---|
QSystemTrayIcon::Trigger | 3 | Der Tray-Eintrag wurde angeklickt |
QSystemTrayIcon::MiddleClick | 4 | Der 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.
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 Standardsymbol für eine Warnung angezeigt. |
QSystemTrayIcon::Critical | 3 | Es 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.