QSystemTrayIcon Class
La clase QSystemTrayIcon proporciona un icono para una aplicación en la bandeja del sistema. Más...
| Cabecera: | #include <QSystemTrayIcon> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Widgets)target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
| qmake: | QT += widgets |
| Hereda: | QObject |
Tipos públicos
| enum | ActivationReason { Unknown, Context, DoubleClick, Trigger, MiddleClick } |
| enum | MessageIcon { NoIcon, Information, Warning, Critical } |
Propiedades
Funciones públicas
| 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 |
Ranuras públicas
| 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) |
Señales
| void | activated(QSystemTrayIcon::ActivationReason reason) |
| void | messageClicked() |
Miembros públicos estáticos
| bool | isSystemTrayAvailable() |
| bool | supportsMessages() |
Funciones protegidas reimplementadas
| virtual bool | event(QEvent *e) override |
Descripción detallada
Los sistemas operativos modernos suelen proporcionar un área especial en el escritorio, llamada bandeja del sistema o área de notificación, donde las aplicaciones de larga ejecución pueden mostrar iconos y mensajes cortos.

La clase QSystemTrayIcon puede ser utilizada en las siguientes plataformas:
- Todas las versiones compatibles de Windows.
- Todos los entornos de escritorio Linux que implementan la especificación D-Bus StatusNotifierItem, incluyendo KDE, Gnome, Xfce, LXQt, y DDE.
- Todos los gestores de ventanas e implementaciones de bandeja independientes para X11 que implementen la especificación de bandeja de sistema XEmbed de freedesktop.org.
- Todas las versiones compatibles de macOS.
Para comprobar si hay una bandeja del sistema en el escritorio del usuario, llame a la función estática QSystemTrayIcon::isSystemTrayAvailable().
Para añadir una entrada a la bandeja del sistema, crea un objeto QSystemTrayIcon, llama a setContextMenu() para proporcionar un menú contextual para el icono, y llama a show() para hacerlo visible en la bandeja del sistema. Los mensajes de notificación de estado ("balloon messages") pueden mostrarse en cualquier momento utilizando showMessage().
Si la bandeja del sistema no está disponible cuando se construye un icono de bandeja del sistema, pero está disponible más tarde, QSystemTrayIcon añadirá automáticamente una entrada para la aplicación en la bandeja del sistema si el icono es visible.
La señal activated() se emite cuando el usuario activa el icono.
Sólo en X11, cuando se solicita un tooltip, el QSystemTrayIcon recibe un QHelpEvent de tipo QEvent::ToolTip. Además, el QSystemTrayIcon recibe eventos de rueda del tipo QEvent::Wheel. Estos no están soportados en ninguna otra plataforma. Nota: Desde la versión 3.26 de GNOME Shell, no todos los QSystemTrayIcon::ActivationReason son soportados por el sistema sin las extensiones de shell instaladas.
Vea también QDesktopServices, Integración con el escritorio, y Ejemplo de icono de bandeja del sistema.
Documentación del tipo de miembro
enum QSystemTrayIcon::ActivationReason
Este enum describe la razón por la que se activó la bandeja del sistema.
| Constante | Valor | Descripción |
|---|---|---|
QSystemTrayIcon::Unknown | 0 | Motivo desconocido |
QSystemTrayIcon::Context | 1 | Se solicitó el menú contextual de la entrada de la bandeja del sistema |
QSystemTrayIcon::DoubleClick | 2 | Se ha hecho doble clic en la entrada de la bandeja del sistema. |
Nota: En macOS, sólo se emitirá un doble clic si no se establece un menú contextual, ya que el menú se abre al pulsar el ratón
| Constante | Valor | Descripción |
|---|---|---|
QSystemTrayIcon::Trigger | 3 | Se ha hecho clic en la entrada de la bandeja del sistema |
QSystemTrayIcon::MiddleClick | 4 | Se ha hecho clic en la entrada de la bandeja del sistema con el botón central del ratón. |
Véase también activated().
enum QSystemTrayIcon::MessageIcon
Este enum describe el icono que se muestra cuando aparece un mensaje de globo.
| Constante | Valor | Descripción |
|---|---|---|
QSystemTrayIcon::NoIcon | 0 | No se muestra ningún icono. |
QSystemTrayIcon::Information | 1 | Se muestra un icono de información. |
QSystemTrayIcon::Warning | 2 | Se muestra un icono de advertencia estándar. |
QSystemTrayIcon::Critical | 3 | Se muestra un icono de advertencia crítica. |
Véase también QMessageBox.
Documentación de propiedades
icon : QIcon
Esta propiedad contiene el icono de la bandeja del sistema
En Windows, el tamaño del icono de la bandeja del sistema es 16x16; en X11, el tamaño preferido es 22x22. El icono se escalará al tamaño apropiado según sea necesario.
Funciones de acceso:
| QIcon | icon() const |
| void | setIcon(const QIcon &icon) |
toolTip : QString
Esta propiedad contiene la información sobre herramientas para la entrada de la bandeja del sistema.
En algunos sistemas, la longitud del tooltip es limitada. La información sobre herramientas se truncará si es necesario.
Funciones de acceso:
| QString | toolTip() const |
| void | setToolTip(const QString &tip) |
visible : bool
Esta propiedad indica si la entrada de la bandeja del sistema es visible.
Establecer esta propiedad a true o llamar a show() hace visible el icono de la bandeja del sistema; establecer esta propiedad a false o llamar a hide() lo oculta.
Funciones de acceso:
| bool | isVisible() const |
| void | setVisible(bool visible) |
Documentación de funciones miembro
QSystemTrayIcon::QSystemTrayIcon(QObject *parent = nullptr)
Construye un objeto QSystemTrayIcon con la dirección parent.
El icono es inicialmente invisible.
Véase también visible.
QSystemTrayIcon::QSystemTrayIcon(const QIcon &icon, QObject *parent = nullptr)
Construye un objeto QSystemTrayIcon con los datos icon y parent.
El icono es inicialmente invisible.
Véase también visible.
[virtual noexcept] QSystemTrayIcon::~QSystemTrayIcon()
Elimina el icono de la bandeja del sistema y libera todos los recursos asignados.
[signal] void QSystemTrayIcon::activated(QSystemTrayIcon::ActivationReason reason)
Esta señal se emite cuando el usuario activa el icono de la bandeja del sistema. reason especifica el motivo de la activación. QSystemTrayIcon::ActivationReason enumera los distintos motivos.
Véase también QSystemTrayIcon::ActivationReason.
QMenu *QSystemTrayIcon::contextMenu() const
Devuelve el menú contextual actual para la entrada de la bandeja del sistema.
Véase también setContextMenu().
[override virtual protected] bool QSystemTrayIcon::event(QEvent *e)
Reimplementa: QObject::event(QEvent *e).
QRect QSystemTrayIcon::geometry() const
Devuelve la geometría del icono de la bandeja del sistema en coordenadas de pantalla.
Véase también visible.
[slot] void QSystemTrayIcon::hide()
Oculta la entrada de la bandeja del sistema.
Véase también show() y visible.
[static] bool QSystemTrayIcon::isSystemTrayAvailable()
Devuelve true si la bandeja del sistema está disponible; en caso contrario, devuelve false.
Si la bandeja del sistema no está disponible en ese momento pero vuelve a estarlo más tarde, QSystemTrayIcon añadirá automáticamente una entrada en la bandeja del sistema si es visible.
[signal] void QSystemTrayIcon::messageClicked()
Esta señal se emite cuando el usuario hace clic en el mensaje mostrado mediante showMessage().
Nota: Seguimos el comportamiento de Microsoft Windows, por lo que la señal también se emite cuando el usuario hace clic en un icono de la bandeja con un mensaje de globo mostrado.
Véase también activated().
void QSystemTrayIcon::setContextMenu(QMenu *menu)
Establece la dirección menu especificada como menú contextual para el icono de la bandeja del sistema.
El menú aparecerá cuando el usuario solicite el menú contextual del icono de la bandeja del sistema pulsando el botón del ratón.
Nota: El icono de la bandeja del sistema no se apropia del menú. Debe asegurarse de que se elimina en el momento adecuado, por ejemplo, creando el menú con un objeto padre adecuado.
Véase también contextMenu().
[slot] void QSystemTrayIcon::show()
Muestra el icono en la bandeja del sistema.
Véase también hide() y visible.
[slot] void QSystemTrayIcon::showMessage(const QString &title, const QString &message, QSystemTrayIcon::MessageIcon icon = QSystemTrayIcon::Information, int millisecondsTimeoutHint = 10000)
Muestra un mensaje de globo para la entrada con los datos title, message y icon durante el tiempo especificado en millisecondsTimeoutHint. title y message deben ser cadenas de texto sin formato.
El usuario puede hacer clic en el mensaje; la señal messageClicked() se emitirá cuando esto ocurra.
Tenga en cuenta que la visualización de los mensajes depende de la configuración del sistema y de las preferencias del usuario, y que es posible que los mensajes no aparezcan en absoluto. Por lo tanto, no debe confiarse en él como único medio para proporcionar información crítica.
En Windows, el sistema suele ignorar millisecondsTimeoutHint cuando la aplicación tiene el foco.
Se ha convertido en una ranura en Qt 5.2.
Nota: Esta ranura está sobrecargada. Para conectarse a esta ranura:
// 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); }); Véase también show() y supportsMessages().
[slot] void QSystemTrayIcon::showMessage(const QString &title, const QString &message, const QIcon &icon, int millisecondsTimeoutHint = 10000)
Muestra un mensaje de globo para la entrada con los datos title, message, y el icono personalizado icon para la hora especificada en millisecondsTimeoutHint.
Nota: Este espacio está sobrecargado. Para conectarse a esta ranura:
// 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()
Devuelve true si la bandeja del sistema admite mensajes de globo; en caso contrario devuelve false.
Véase también 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.