En esta página

QApplication Class

La clase QApplication gestiona el flujo de control y la configuración principal de la aplicación GUI. Más...

Cabecera: #include <QApplication>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
Hereda: QGuiApplication

Propiedades

Funciones públicas

QApplication(int &argc, char **argv)
virtual ~QApplication()
bool autoSipEnabled() const
QString styleSheet() const

Funciones públicas reimplementadas

virtual bool notify(QObject *receiver, QEvent *e) override

Ranuras públicas

void aboutQt()
void closeAllWindows()
void setAutoSipEnabled(const bool enabled)
void setStyleSheet(const QString &sheet)

Señales

void focusChanged(QWidget *old, QWidget *now)

Miembros públicos estáticos

QWidget *activeModalWidget()
QWidget *activePopupWidget()
QWidget *activeWindow()
void alert(QWidget *widget, int msec = 0)
QWidgetList allWidgets()
void beep()
int cursorFlashTime()
int doubleClickInterval()
int exec()
QWidget *focusWidget()
QFont font()
QFont font(const QWidget *widget)
QFont font(const char *className)
bool isEffectEnabled(Qt::UIEffect effect)
int keyboardInputInterval()
Qt::NavigationMode navigationMode()
QPalette palette(const QWidget *widget)
QPalette palette(const char *className)
void setCursorFlashTime(int)
void setDoubleClickInterval(int)
void setEffectEnabled(Qt::UIEffect effect, bool enable = true)
void setFont(const QFont &font, const char *className = nullptr)
void setKeyboardInputInterval(int)
void setNavigationMode(Qt::NavigationMode mode)
void setPalette(const QPalette &palette, const char *className = nullptr)
void setStartDragDistance(int l)
void setStartDragTime(int ms)
void setStyle(QStyle *style)
QStyle *setStyle(const QString &style)
void setWheelScrollLines(int)
int startDragDistance()
int startDragTime()
QStyle *style()
QWidget *topLevelAt(const QPoint &point)
QWidget *topLevelAt(int x, int y)
QWidgetList topLevelWidgets()
int wheelScrollLines()
QWidget *widgetAt(const QPoint &point)
QWidget *widgetAt(int x, int y)

Funciones protegidas reimplementadas

virtual bool event(QEvent *e) override

Macros

Descripción Detallada

QApplication se especializa en QGuiApplication con algunas funcionalidades necesarias para aplicaciones basadas en QWidget. Se encarga de la inicialización y finalización de widgets específicos.

Para cualquier aplicación GUI que use Qt, hay precisamente un objeto QApplication, sin importar si la aplicación tiene 0, 1, 2 o más ventanas en un momento dado. Para aplicaciones Qt no basadas enQWidget, utilice QGuiApplication en su lugar, ya que no depende de la librería QtWidgets.

Algunas aplicaciones GUI proporcionan un modo especial por lotes, es decir, proporcionan argumentos de línea de comandos para ejecutar tareas sin intervención manual. En dicho modo no GUI, a menudo es suficiente con instanciar un QCoreApplication plano para evitar inicializar innecesariamente recursos necesarios para una interfaz gráfica de usuario. El siguiente ejemplo muestra cómo crear dinámicamente un tipo apropiado de instancia de aplicación:

QCoreApplication* createApplication(int &argc, char *argv[])
{
    for (int i = 1; i < argc; ++i) {
        if (!qstrcmp(argv[i], "-no-gui"))
            return new QCoreApplication(argc, argv);
    }
    return new QApplication(argc, argv);
}

int main(int argc, char* argv[])
{
    QScopedPointer<QCoreApplication> app(createApplication(argc, argv));

    if (qobject_cast<QApplication *>(app.data())) {
       // start GUI version...
    } else {
       // start non-GUI version...
    }

    return app->exec();
}

El objeto QApplication es accesible a través de la función instance() que devuelve un puntero equivalente al puntero global qApp.

Las principales áreas de responsabilidad de QApplication son:

  • Inicializa la aplicación con la configuración del escritorio del usuario como palette(), font() y doubleClickInterval(). Realiza un seguimiento de estas propiedades en caso de que el usuario cambie el escritorio globalmente, por ejemplo a través de algún tipo de panel de control.
  • Realiza la gestión de eventos, lo que significa que recibe eventos del sistema de ventanas subyacente y los envía a los widgets pertinentes. Utilizando sendEvent() y postEvent() puedes enviar tus propios eventos a los widgets.
  • Analiza los argumentos comunes de la línea de comandos y establece su estado interno en consecuencia. Consulta constructor documentation para más detalles.
  • Define la apariencia de la aplicación, que se encapsula en un objeto QStyle. Esto se puede cambiar en tiempo de ejecución con setStyle().
  • Proporciona la localización de cadenas visibles para el usuario a través de translate().
  • Proporciona algunos objetos mágicos como clipboard().
  • Conoce las ventanas de la aplicación. Puede preguntar qué widget está en una determinada posición mediante widgetAt(), obtener una lista de topLevelWidgets() y closeAllWindows(), etc.
  • Gestiona el manejo del cursor del ratón de la aplicación, ver setOverrideCursor()

Dado que el objeto QApplication hace tanta inicialización, debe ser creado antes de que cualquier otro objeto relacionado con la interfaz de usuario sea creado. QApplication también maneja argumentos comunes de línea de comandos. Por lo tanto, suele ser una buena idea crearlo antes de que cualquier interpretación o modificación de argv se realice en la propia aplicación.

Véase también QCoreApplication, QAbstractEventDispatcher, QEventLoop, y QSettings.

Documentación de propiedades

autoSipEnabled : bool

activa la visibilidad automática del SIP (panel de entrada de software)

Establezca esta propiedad en true para mostrar automáticamente el SIP al entrar en widgets que aceptan entrada de teclado. Esta propiedad sólo afecta a los widgets con el atributo WA_InputMethodEnabled establecido, y se utiliza normalmente para lanzar un teclado virtual en dispositivos que tienen muy pocas teclas o ninguna.

La propiedad sólo tiene efecto en plataformas que utilizan paneles de entrada de software.

El valor por defecto depende de la plataforma.

Funciones de acceso:

bool autoSipEnabled() const
void setAutoSipEnabled(const bool enabled)

cursorFlashTime : int

Esta propiedad contiene el tiempo de parpadeo del cursor de texto en milisegundos.

El tiempo de parpadeo es el tiempo necesario para mostrar, invertir y restaurar la visualización del cursor. Normalmente el cursor de texto se muestra durante la mitad del tiempo de parpadeo del cursor, y luego se oculta durante el mismo tiempo, pero esto puede variar.

El valor por defecto en X11 es 1000 milisegundos. En Windows, se utiliza el valor Control Panel y al establecer esta propiedad se fija el tiempo de parpadeo del cursor para todas las aplicaciones.

Recomendamos que los widgets no guarden en caché este valor ya que puede cambiar en cualquier momento si el usuario cambia la configuración global del escritorio.

Nota: Esta propiedad puede tener un valor negativo, por ejemplo si el parpadeo del cursor está desactivado.

Funciones de acceso:

int cursorFlashTime()
void setCursorFlashTime(int)

doubleClickInterval : int

Esta propiedad mantiene el límite de tiempo en milisegundos que distingue un doble clic de dos clics consecutivos del ratón

El valor por defecto en X11 es 400 milisegundos. En Windows y Mac OS, se utiliza el valor del sistema operativo.

Funciones de acceso:

int doubleClickInterval()
void setDoubleClickInterval(int)

keyboardInputInterval : int

Esta propiedad mantiene el límite de tiempo en milisegundos que distingue una pulsación de tecla de dos pulsaciones consecutivas.

El valor por defecto en X11 es de 400 milisegundos. En Windows y Mac OS se utiliza el valor del sistema operativo.

Funciones de acceso:

int keyboardInputInterval()
void setKeyboardInputInterval(int)

startDragDistance : int

Esta propiedad contiene la distancia mínima requerida para que se inicie una operación de arrastrar y soltar.

Si soportas arrastrar y soltar en tu aplicación, y quieres iniciar una operación de arrastrar y soltar después de que el usuario haya movido el cursor una cierta distancia con un botón pulsado, debes usar el valor de esta propiedad como la distancia mínima requerida.

Por ejemplo, si la posición del ratón del clic se almacena en startPos y la posición actual (por ejemplo en el evento de movimiento del ratón) es currentPos, puedes averiguar si se debe iniciar un arrastre con código como este:

if ((startPos - currentPos).manhattanLength() >=
        QApplication::startDragDistance())
    startTheDrag();

Qt utiliza este valor internamente, por ejemplo en QFileDialog.

El valor por defecto (si la plataforma no proporciona un valor por defecto diferente) es de 10 píxeles.

Funciones de acceso:

int startDragDistance()
void setStartDragDistance(int l)

Véase también startDragTime(), QPoint::manhattanLength(), y Arrastrar y soltar.

startDragTime : int

Esta propiedad contiene el tiempo en milisegundos que un botón del ratón debe mantenerse pulsado antes de que comience una operación de arrastrar y soltar.

Si soportas arrastrar y soltar en tu aplicación, y quieres iniciar una operación de arrastrar y soltar después de que el usuario haya mantenido pulsado el botón del ratón durante un cierto tiempo, deberías usar el valor de esta propiedad como retardo.

Qt también utiliza este retardo internamente, por ejemplo en QTextEdit y QLineEdit, para iniciar un arrastre.

El valor por defecto es 500 ms.

Funciones de acceso:

int startDragTime()
void setStartDragTime(int ms)

Véase también startDragDistance() y Arrastrar y soltar.

styleSheet : QString

Esta propiedad contiene la hoja de estilo de la aplicación

Por defecto, esta propiedad devuelve una cadena vacía a menos que el usuario especifique la opción -stylesheet en la línea de comandos al ejecutar la aplicación.

Funciones de acceso:

QString styleSheet() const
void setStyleSheet(const QString &sheet)

Véase también QWidget::setStyle() y Hojas de estilo Qt.

wheelScrollLines : int

Esta propiedad contiene el número de líneas para desplazar un widget, cuando se gira la rueda del ratón.

Si el valor excede el número de líneas visibles del widget, el widget debería interpretar la operación de desplazamiento como una sola página hacia arriba o hacia abajo. Si el widget es un item view class, entonces el resultado de desplazarse una línea depende de la configuración de scroll mode del widget. Desplazarse una línea puede significar scroll one item o scroll one pixel.

Por defecto, esta propiedad tiene un valor de 3.

Funciones de acceso:

int wheelScrollLines()
void setWheelScrollLines(int)

Véase también QStyleHints::wheelScrollLines().

Documentación de las funciones miembro

QApplication::QApplication(int &argc, char **argv)

Inicializa el sistema de ventanas y construye un objeto de aplicación con argc argumentos de línea de comandos en argv.

Advertencia: Los datos referidos por argc y argv deben permanecer válidos durante todo el tiempo de vida del objeto QApplication. Además, argc debe ser mayor que cero y argv debe contener al menos una cadena de caracteres válida.

El puntero global qApp hace referencia a este objeto de aplicación. Sólo debe crearse un objeto de aplicación.

Este objeto de aplicación debe construirse antes que cualquier paint devices (incluyendo widgets, pixmaps, bitmaps, etc.).

Nota: argc y argv pueden cambiar a medida que Qt elimina los argumentos de línea de comandos que reconoce.

Todos los programas Qt soportan automáticamente las siguientes opciones de línea de comandos:

  • -style= style, establece el estilo GUI de la aplicación. Los valores posibles dependen de la configuración de su sistema. Si has compilado Qt con estilos adicionales o tienes estilos adicionales como plugins estos estarán disponibles para la opción de línea de comandos -style. También puede establecer el estilo para todas las aplicaciones Qt estableciendo la variable de entorno QT_STYLE_OVERRIDE.
  • -style estilo, es el mismo que el listado arriba.
  • -stylesheet= stylesheet, establece el styleSheet de la aplicación. El valor debe ser una ruta a un archivo que contenga la hoja de estilo.

    Nota: Las URLs relativas en el archivo de la Hoja de Estilo son relativas a la ruta del archivo de la Hoja de Estilo.

  • -stylesheet stylesheet, es el mismo que el indicado anteriormente.
  • -widgetcount, imprime un mensaje de depuración al final sobre el número de widgets que quedan sin destruir y el número máximo de widgets existentes al mismo tiempo
  • -reverse, establece la dirección de diseño de la aplicación a Qt::RightToLeft
  • -qmljsdebugger=, activa el depurador QML/JS con un puerto especificado. El valor debe tener el formato port:1234[,block], donde block es opcional y hará que la aplicación espere hasta que un depurador se conecte a ella.

Véase también QCoreApplication::arguments().

[virtual noexcept] QApplication::~QApplication()

Limpia cualquier recurso del sistema de ventanas que haya sido asignado por esta aplicación. Establece la variable global qApp en nullptr.

[static slot] void QApplication::aboutQt()

Muestra un sencillo cuadro de mensaje sobre Qt. El mensaje incluye el número de versión de Qt que utiliza la aplicación.

Esto es útil para incluirlo en el menú Help de una aplicación, como se muestra en el ejemplo Menús.

Esta función es una ranura de conveniencia para QMessageBox::aboutQt().

[static] QWidget *QApplication::activeModalWidget()

Devuelve el widget modal activo.

Un widget modal es un widget especial de nivel superior que es una subclase de QDialog que especifica el parámetro modal del constructor como true. Un widget modal debe cerrarse antes de que el usuario pueda continuar con otras partes del programa.

Los widgets modales se organizan en una pila. Esta función devuelve el widget modal activo en la parte superior de la pila.

Véase también activePopupWidget() y topLevelWidgets().

[static] QWidget *QApplication::activePopupWidget()

Devuelve el widget emergente activo.

Un widget emergente es un widget especial de nivel superior que establece el indicador de widget Qt::WType_Popup, por ejemplo, el widget QMenu. Cuando la aplicación abre un widget emergente, todos los eventos se envían al mismo. No se puede acceder a los widgets normales ni a los widgets modales antes de que se cierre el widget emergente.

Sólo se pueden abrir otros widgets emergentes cuando se muestra un widget emergente. Los widgets popup se organizan en una pila. Esta función devuelve el widget emergente activo en la parte superior de la pila.

Véase también activeModalWidget() y topLevelWidgets().

[static] QWidget *QApplication::activeWindow()

Devuelve la ventana de nivel superior de la aplicación que tiene el foco de entrada de teclado, o nullptr si ninguna ventana de la aplicación tiene el foco. Puede haber una activeWindow() aunque no exista focusWidget(), por ejemplo si ningún widget de esa ventana acepta eventos de teclado.

Véase también QWidget::setFocus(), QWidget::hasFocus() y focusWidget().

[static] void QApplication::alert(QWidget *widget, int msec = 0)

Hace que se muestre una alerta durante widget si la ventana no es la ventana activa. La alerta se muestra durante msec milisegundos. Si msec es cero (por defecto), entonces la alerta se muestra indefinidamente hasta que la ventana vuelve a estar activa.

Actualmente esta función no hace nada en Qt for Embedded Linux.

En macOS, esto funciona más a nivel de aplicación y hará que el icono de la aplicación rebote en el dock.

En Windows, esto hace que la entrada de la barra de tareas de la ventana parpadee durante un tiempo. Si msec es cero, el parpadeo se detendrá y la entrada de la barra de tareas cambiará de color (actualmente naranja).

En X11, esto hará que la ventana sea marcada como "requiere atención", la ventana no debe estar oculta (es decir, no tener hide() llamado en ella, pero ser visible de alguna manera) para que esto funcione.

[static] QWidgetList QApplication::allWidgets()

Devuelve una lista de todos los widgets de la aplicación.

La lista está vacía (QList::isEmpty()) si no hay widgets.

Nota: Algunos de los widgets pueden estar ocultos.

Ejemplo:

void updateAllWidgets()
{
    const QWidgetList allWidgets = QApplication::allWidgets();
    for (QWidget *widget : allWidgets)
        widget->update();
}

Véase también topLevelWidgets() y QWidget::isVisible().

[static] void QApplication::beep()

Hace sonar el timbre, utilizando el volumen y el sonido predeterminados. La función no está disponible en Qt for Embedded Linux.

[static slot] void QApplication::closeAllWindows()

Cierra todas las ventanas de nivel superior.

Esta función es especialmente útil para aplicaciones con muchas ventanas de nivel superior.

Las ventanas se cierran en orden aleatorio, hasta que una ventana no acepta el evento de cierre. La aplicación se cierra cuando la última ventana se ha cerrado correctamente, a menos que quitOnLastWindowClosed se establezca en false. Para activar la finalización de la aplicación desde, por ejemplo, un menú, utilice QCoreApplication::quit() en lugar de esta función.

Véase también quitOnLastWindowClosed, lastWindowClosed(), QWidget::close(), QWidget::closeEvent(), QCoreApplication::quit(), topLevelWidgets(), y QWidget::isWindow().

[override virtual protected] bool QApplication::event(QEvent *e)

Reimplementa: QGuiApplication::event(QEvent *e).

[static] int QApplication::exec()

Entra en el bucle principal de eventos y espera hasta que se llama a exit(), luego devuelve el valor que se estableció en exit() (que es 0 si exit() se llama a través de quit()).

Es necesario llamar a esta función para iniciar el manejo de eventos. El bucle principal de eventos recibe eventos del sistema de ventanas y los envía a los widgets de la aplicación.

Generalmente, ninguna interacción del usuario puede tener lugar antes de llamar a exec(). Como caso especial, los widgets modales como QMessageBox pueden utilizarse antes de llamar a exec(), porque los widgets modales llaman a exec() para iniciar un bucle de eventos local.

Para que su aplicación realice un procesamiento en reposo, es decir, ejecute una función especial siempre que no haya eventos pendientes, utilice QChronoTimer con un tiempo de espera de 0ns. Se pueden conseguir esquemas de procesamiento inactivo más avanzados utilizando processEvents().

Te recomendamos que conectes el código de limpieza a la señal aboutToQuit(), en lugar de ponerlo en la función main() de tu aplicación. Esto se debe a que, en algunas plataformas la llamada a QApplication::exec() puede no retornar. Por ejemplo, en la plataforma Windows, cuando el usuario cierra la sesión, el sistema termina el proceso después de que Qt cierre todas las ventanas de nivel superior. Por lo tanto, no hay garantía de que la aplicación tenga tiempo de salir de su bucle de eventos y ejecutar código al final de la función main(), después de la llamada a QApplication::exec().

Ver también quitOnLastWindowClosed, QCoreApplication::quit(), QCoreApplication::exit(), QCoreApplication::processEvents(), y QCoreApplication::exec().

[signal] void QApplication::focusChanged(QWidget *old, QWidget *now)

Esta señal se emite cuando el widget que tiene el foco del teclado cambia de old a now, es decir, porque el usuario pulsa la tecla de tabulación, hace clic en un widget o cambia la ventana activa. Tanto old como now pueden ser nullptr.

La señal se emite después de que ambos widgets hayan sido notificados del cambio a través de QFocusEvent.

Véase también QWidget::setFocus(), QWidget::clearFocus(), y Qt::FocusReason.

[static] QWidget *QApplication::focusWidget()

Devuelve el widget de la aplicación que tiene el foco de entrada de teclado, o nullptr si ningún widget de esta aplicación tiene el foco.

Véase también QWidget::setFocus(), QWidget::hasFocus(), activeWindow() y focusChanged().

[static] QFont QApplication::font()

Devuelve la fuente por defecto de la aplicación.

Véase también setFont(), fontMetrics() y QWidget::font().

[static] QFont QApplication::font(const QWidget *widget)

Devuelve la fuente predeterminada para widget. Si no se ha registrado una fuente predeterminada para la clase de widget, devuelve la fuente predeterminada de su superclase registrada más cercana.

Se trata de una función sobrecargada.

Véase también fontMetrics(), setFont(), y QWidget::setFont().

[static] QFont QApplication::font(const char *className)

Devuelve el tipo de letra de los widgets de la dirección className.

Se trata de una función sobrecargada.

Véase también setFont() y QWidget::font().

[static] bool QApplication::isEffectEnabled(Qt::UIEffect effect)

Devuelve true si effect está habilitado; en caso contrario devuelve false.

Por defecto, Qt intentará utilizar la configuración del escritorio. Para evitarlo, llame a setDesktopSettingsAware(false).

Nota: Todos los efectos se desactivan en pantallas con una profundidad de color inferior a 16 bits.

Véase también setEffectEnabled() y Qt::UIEffect.

Devuelve qué tipo de navegación de enfoque está usando Qt.

Esta característica sólo está disponible en Qt para Embedded Linux.

Véase también setNavigationMode().

[override virtual] bool QApplication::notify(QObject *receiver, QEvent *e)

Reimplementa: QGuiApplication::notify(QObject *object, QEvent *event).

[static] QPalette QApplication::palette(const QWidget *widget)

Si se pasa un widget, se devuelve la paleta por defecto para la clase del widget. Esta puede o no ser la paleta de la aplicación. En la mayoría de los casos no hay una paleta especial para ciertos tipos de widgets, pero una excepción notable es el menú emergente en Windows, si el usuario ha definido un color de fondo especial para los menús en la configuración de pantalla.

Véase también setPalette() y QWidget::palette().

[static] QPalette QApplication::palette(const char *className)

Devuelve la paleta de widgets de la dirección className.

Se trata de una función sobrecargada.

Véase también setPalette() y QWidget::palette().

[static] void QApplication::setEffectEnabled(Qt::UIEffect effect, bool enable = true)

Activa el efecto de interfaz de usuario effect si enable es verdadero; de lo contrario, el efecto no se utilizará.

Nota: Todos los efectos se desactivan en pantallas con una profundidad de color inferior a 16 bits.

Véase también isEffectEnabled(), Qt::UIEffect, y setDesktopSettingsAware().

[static] void QApplication::setFont(const QFont &font, const char *className = nullptr)

Cambia el tipo de letra por defecto de la aplicación a font. Si se pasa className, el cambio se aplica sólo a las clases que heredan className (tal y como informa QObject::inherits()).

Al iniciarse la aplicación, la fuente por defecto depende del sistema de ventanas. Puede variar en función de la versión del sistema de ventanas y de la configuración regional. Esta función te permite sobreescribir la fuente por defecto; pero sobreescribirla puede ser una mala idea porque, por ejemplo, algunas localizaciones necesitan fuentes extra grandes para soportar sus caracteres especiales.

Advertencia: No utilice esta función junto con Hojas de Estilo Qt. La fuente de una aplicación puede personalizarse usando la propiedad "font" de la hoja de estilo. Para establecer una fuente en negrita para todos los QPushButtons, establezca la aplicación styleSheet() como "QPushButton { font: bold }"

Ver también font(), fontMetrics(), y QWidget::setFont().

[static] void QApplication::setNavigationMode(Qt::NavigationMode mode)

Establece el tipo de navegación de enfoque que Qt debe utilizar para mode.

Esta característica sólo está disponible en Qt para Embedded Linux.

Véase también navigationMode().

[static] void QApplication::setPalette(const QPalette &palette, const char *className = nullptr)

Cambia la paleta de la aplicación a palette.

Si se pasa className, el cambio se aplica sólo a los widgets que heredan className (tal y como informa QObject::inherits()). Si se deja className a 0, el cambio afecta a todos los widgets, anulando así cualquier paleta específica de clase establecida previamente.

La paleta puede cambiarse según el estilo GUI actual en QStyle::polish().

Advertencia: No utilice esta función junto con hojas de estilo Qt. Cuando se usan hojas de estilo, la paleta de un widget puede personalizarse usando "color", "background-color", "selection-color", "selection-background-color" y "alternate-background-color".

Nota: Algunos estilos no utilizan la paleta para todos los dibujos, por ejemplo, si hacen uso de motores de temas nativos. Es el caso de los estilos Windows Vista y macOS.

Véase también QWidget::setPalette(), palette() y QStyle::polish().

[static] void QApplication::setStyle(QStyle *style)

Establece el estilo GUI de la aplicación en style. La propiedad del objeto de estilo se transfiere a QApplication, por lo que QApplication borrará el objeto de estilo al salir de la aplicación o cuando se establezca un nuevo estilo y el estilo antiguo siga siendo el padre del objeto de la aplicación.

Ejemplo de uso:

QApplication::setStyle(QStyleFactory::create("Fusion"));

Cuando se cambian los estilos de la aplicación, la paleta de colores vuelve a los colores iniciales o a los predeterminados del sistema. Esto es necesario ya que ciertos estilos tienen que adaptar la paleta de colores para ser totalmente compatibles con la guía de estilo.

Establecer el estilo antes de que se haya establecido una paleta, es decir, antes de crear QApplication, hará que la aplicación utilice QStyle::standardPalette() para la paleta.

Advertencia: Las hojas de estilo de Qt no son compatibles actualmente con las subclases personalizadas de QStyle. Planeamos solucionar esto en una futura versión.

Ver también style(), QStyle, setPalette(), y desktopSettingsAware().

[static] QStyle *QApplication::setStyle(const QString &style)

Solicita un objeto QStyle para style desde QStyleFactory.

La cadena debe ser una de las QStyleFactory::keys(), normalmente una de "windows", "windowsvista", "fusion" o "macos". Los nombres de estilo no distinguen mayúsculas de minúsculas.

Devuelve nullptr si se pasa un style desconocido, de lo contrario el objeto QStyle devuelto se establece como el estilo GUI de la aplicación.

Advertencia: Para asegurar que el estilo de la aplicación se establece correctamente, es mejor llamar a esta función antes del constructor QApplication, si es posible.

Se trata de una función sobrecargada.

[static] QStyle *QApplication::style()

Devuelve el objeto de estilo de la aplicación.

Véase también setStyle() y QStyle.

[static] QWidget *QApplication::topLevelAt(const QPoint &point)

Devuelve el widget de nivel superior en el point dado ; devuelve nullptr si no existe tal widget.

[static] QWidget *QApplication::topLevelAt(int x, int y)

Devuelve el widget de nivel superior en el punto (x, y); devuelve 0 si no existe tal widget.

Se trata de una función sobrecargada.

[static] QWidgetList QApplication::topLevelWidgets()

Devuelve una lista de los widgets de nivel superior (ventanas) de la aplicación.

Nota: Algunos de los widgets de nivel superior pueden estar ocultos, por ejemplo un tooltip si actualmente no se muestra ningún tooltip.

Ejemplo:

void showAllHiddenTopLevelWidgets()
{
    const QWidgetList topLevelWidgets = QApplication::topLevelWidgets();
    for (QWidget *widget : topLevelWidgets) {
        if (widget->isHidden())
            widget->show();
    }
}

Véase también allWidgets(), QWidget::isWindow(), y QWidget::isHidden().

[static] QWidget *QApplication::widgetAt(const QPoint &point)

Devuelve el widget en la posición global de pantalla point, o nullptr si no hay ningún widget Qt allí.

Esta función puede ser lenta.

Véase también QCursor::pos(), QWidget::grabMouse(), y QWidget::grabKeyboard().

[static] QWidget *QApplication::widgetAt(int x, int y)

Devuelve el widget en la posición global de la pantalla (x, y), o nullptr si no hay ningún widget Qt allí.

Esta es una función sobrecargada.

Documentación de macros

qApp

Puntero global que hace referencia al objeto de aplicación único. Es equivalente a QCoreApplication::instance(), pero emitido como un puntero QApplication, por lo que sólo es válido cuando el objeto de aplicación único es un QApplication.

Véase también QCoreApplication::instance() y qGuiApp.

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