En esta página

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

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 bandeja del sistema en Windows 10.

La clase QSystemTrayIcon puede ser utilizada en las siguientes plataformas:

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.

ConstanteValorDescripción
QSystemTrayIcon::Unknown0Motivo desconocido
QSystemTrayIcon::Context1Se solicitó el menú contextual de la entrada de la bandeja del sistema
QSystemTrayIcon::DoubleClick2Se 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

ConstanteValorDescripción
QSystemTrayIcon::Trigger3Se ha hecho clic en la entrada de la bandeja del sistema
QSystemTrayIcon::MiddleClick4Se 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.

ConstanteValorDescripción
QSystemTrayIcon::NoIcon0No se muestra ningún icono.
QSystemTrayIcon::Information1Se muestra un icono de información.
QSystemTrayIcon::Warning2Se muestra un icono de advertencia estándar.
QSystemTrayIcon::Critical3Se 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); });
Para más ejemplos y enfoques, véase conectarse a slots sobrecargados.

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); });
Para más ejemplos y enfoques, véase conectar con ranuras sobrecargadas.

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