En esta página

QGuiApplication Class

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

Cabecera: #include <QGuiApplication>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
Hereda: QCoreApplication
Heredado por:

QApplication

Propiedades

Funciones públicas

QGuiApplication(int &argc, char **argv)
virtual ~QGuiApplication()
qreal devicePixelRatio() const
bool isSavingSession() const
bool isSessionRestored() const
QNativeInterface *nativeInterface() const
QString sessionId() const
QString sessionKey() const

Funciones públicas reimplementadas

virtual bool notify(QObject *object, QEvent *event) override

Ranuras públicas

(since 6.5) void setBadgeNumber(qint64 number)

Señales

void applicationDisplayNameChanged()
void applicationStateChanged(Qt::ApplicationState state)
void commitDataRequest(QSessionManager &manager)
void focusObjectChanged(QObject *focusObject)
void focusWindowChanged(QWindow *focusWindow)
void fontDatabaseChanged()
void lastWindowClosed()
void layoutDirectionChanged(Qt::LayoutDirection direction)
void primaryScreenChanged(QScreen *screen)
void saveStateRequest(QSessionManager &manager)
void screenAdded(QScreen *screen)
void screenRemoved(QScreen *screen)

Miembros públicos estáticos

QWindowList allWindows()
QString applicationDisplayName()
Qt::ApplicationState applicationState()
void changeOverrideCursor(const QCursor &cursor)
QClipboard *clipboard()
QString desktopFileName()
bool desktopSettingsAware()
int exec()
QObject *focusObject()
QWindow *focusWindow()
QFont font()
Qt::HighDpiScaleFactorRoundingPolicy highDpiScaleFactorRoundingPolicy()
QInputMethod *inputMethod()
bool isLeftToRight()
bool isRightToLeft()
Qt::KeyboardModifiers keyboardModifiers()
Qt::LayoutDirection layoutDirection()
QWindow *modalWindow()
Qt::MouseButtons mouseButtons()
QCursor *overrideCursor()
QPalette palette()
QString platformName()
QScreen *primaryScreen()
Qt::KeyboardModifiers queryKeyboardModifiers()
bool quitOnLastWindowClosed()
void restoreOverrideCursor()
QScreen *screenAt(const QPoint &point)
QList<QScreen *> screens()
void setApplicationDisplayName(const QString &name)
void setDesktopFileName(const QString &name)
void setDesktopSettingsAware(bool on)
void setFont(const QFont &font)
void setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy policy)
void setLayoutDirection(Qt::LayoutDirection direction)
void setOverrideCursor(const QCursor &cursor)
void setPalette(const QPalette &pal)
void setQuitOnLastWindowClosed(bool quit)
void setWindowIcon(const QIcon &icon)
QStyleHints *styleHints()
void sync()
QWindow *topLevelAt(const QPoint &pos)
QWindowList topLevelWindows()
QIcon windowIcon()

Funciones protegidas reimplementadas

virtual bool event(QEvent *e) override

Macros

Descripción Detallada

QGuiApplication contiene el bucle principal de eventos, donde todos los eventos del sistema de ventanas y otras fuentes son procesados y enviados. También maneja la inicialización y finalización de la aplicación, y provee el manejo de sesiones. Además, QGuiApplication maneja la mayoría de las configuraciones del sistema y de la aplicación.

Para cualquier aplicación GUI que utilice Qt, hay precisamente un objeto QGuiApplication sin importar si la aplicación tiene 0, 1, 2 o más ventanas en un momento dado. Para aplicaciones Qt no GUI, utilice QCoreApplication en su lugar, ya que no depende del módulo Qt GUI. Para aplicaciones Qt basadas en QWidget, utilice QApplication en su lugar, ya que proporciona algunas funcionalidades necesarias para crear instancias de QWidget.

El objeto QGuiApplication 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 QGuiApplication son:

  • Inicializa la aplicación con la configuración del escritorio del usuario, como palette(), font() y styleHints(). 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. Puedes enviar tus propios eventos a las ventanas utilizando sendEvent() y postEvent().
  • Analiza los argumentos comunes de la línea de comandos y establece su estado interno en consecuencia. Véase constructor documentation para más detalles.
  • Proporciona localización de cadenas que son visibles para el usuario a través de translate().
  • Proporciona algunos objetos mágicos como clipboard().
  • Conoce las ventanas de la aplicación. Puedes preguntar qué ventana está en una determinada posición utilizando topLevelAt(), obtener una lista de topLevelWindows(), etc.
  • Gestiona el manejo del cursor del ratón de la aplicación, ver setOverrideCursor()
  • Ofrece soporte para una gestión sofisticada de las sesiones. Esto hace posible que las aplicaciones terminen con gracia cuando el usuario cierra la sesión, para cancelar un proceso de cierre si la terminación no es posible e incluso para preservar todo el estado de la aplicación para una sesión futura. Ver isSessionRestored(), sessionId() y commitDataRequest() y saveStateRequest() para más detalles.

Dado que el objeto QGuiApplication hace tanta inicialización, debe ser creado antes de que cualquier otro objeto relacionado con la interfaz de usuario sea creado. QGuiApplication tambien trata con argumentos comunes de linea de comandos. Por lo tanto, es una buena idea crearlo antes de cualquier interpretación o modificación de argv en la propia aplicación.

Grupos de funciones
Configuración del sistemadesktopSettingsAware(), setDesktopSettingsAware(), styleHints(), palette(), setPalette(), font(), setFont().
Gestión de eventosexec(), processEvents(), exit(), quit(). sendEvent(), postEvent(), sendPostedEvents(), removePostedEvents(), notify().
WindowsallWindows(), topLevelWindows(), focusWindow(), clipboard(), topLevelAt().
Manejo avanzado del cursoroverrideCursor(), setOverrideCursor(), restoreOverrideCursor().
Gestión de sesionesisSessionRestored(), sessionId(), commitDataRequest(), saveStateRequest().
VariosstartingUp(), closingDown().

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

Documentación de propiedades

applicationDisplayName : QString

Esta propiedad contiene el nombre visible para el usuario de esta aplicación.

Este nombre se muestra al usuario, por ejemplo en los títulos de las ventanas. Puede ser traducido, si es necesario.

Si no se establece, el nombre visible de la aplicación es por defecto el nombre de la aplicación.

Funciones de acceso:

QString applicationDisplayName()
void setApplicationDisplayName(const QString &name)

Señal del notificador:

void applicationDisplayNameChanged()

Véase también applicationName.

desktopFileName : QString

Esta propiedad contiene el nombre base de la entrada de escritorio para esta aplicación.

Es el nombre de archivo, sin la ruta completa ni la extensión ".desktop" al final, de la entrada de escritorio que representa a esta aplicación según la especificación de entrada de escritorio de freedesktop.

Esta propiedad proporciona una indicación precisa de qué entrada del escritorio representa a la aplicación y es necesaria para que el sistema de ventanas recupere dicha información sin recurrir a heurísticas imprecisas.

La última versión de la especificación de entrada de escritorio freedesktop puede obtenerse aquí.

Funciones de acceso:

QString desktopFileName()
void setDesktopFileName(const QString &name)

layoutDirection : Qt::LayoutDirection

Esta propiedad contiene la dirección de diseño por defecto para esta aplicación.

Al iniciar el sistema, o cuando la dirección se establece explícitamente en Qt::LayoutDirectionAuto, la dirección de diseño predeterminada depende del idioma de la aplicación.

La señal del notificador se introdujo en Qt 5.4.

Funciones de acceso:

Qt::LayoutDirection layoutDirection()
void setLayoutDirection(Qt::LayoutDirection direction)

Señal notificador:

void layoutDirectionChanged(Qt::LayoutDirection direction)

Véase también QWidget::layoutDirection, isLeftToRight(), y isRightToLeft().

[read-only] platformName : const QString

Esta propiedad contiene el nombre del plugin de plataforma subyacente.

Los plugins de plataforma QPA se encuentran en qtbase\src\plugins\platforms. En el momento de escribir este documento, se admiten los siguientes nombres de plugins de plataforma:

  • android
  • cocoa es un plugin de plataforma para macOS.
  • directfb
  • eglfs es un complemento de plataforma para ejecutar aplicaciones Qt5 sobre EGL y OpenGL ES 2.0 sin un sistema de ventanas real (como X11 o Wayland). Para más información, véase EGLFS.
  • ios (también usado para tvOS)
  • linuxfb escribe directamente en el framebuffer. Para más información, véase LinuxFB.
  • minimal se proporciona como ejemplo para desarrolladores que quieran escribir sus propios plugins de plataforma. Sin embargo, puedes usar el plugin para ejecutar aplicaciones GUI en entornos sin GUI, como servidores.
  • minimalegl es un plugin de ejemplo.
  • offscreen
  • qnx
  • windows
  • wayland es un plugin de plataforma para el protocolo de servidor de pantalla Wayland, usado en algunos escritorios Linux y sistemas embebidos.
  • xcb es un plugin para el sistema de ventanas X11, utilizado en algunas plataformas Linux de escritorio.

Nota: Al llamar a esta función sin un QGuiApplication se devolverá el nombre de la plataforma por defecto, si está disponible. El nombre de la plataforma por defecto no se ve afectado por la opción de línea de comandos -platform, o la variable de entorno QT_QPA_PLATFORM.

Para más información sobre los plugins de plataforma para dispositivos Linux embebidos, véase Qt para Linux embebido.

Funciones de acceso:

QString platformName()

[read-only] primaryScreen : QScreen*

Esta propiedad contiene la pantalla primaria (o por defecto) de la aplicación.

Esta será la pantalla donde se muestren inicialmente las QWindows, a menos que se especifique lo contrario.

La señal primaryScreenChanged se introdujo en Qt 5.6.

Funciones de acceso:

QScreen *primaryScreen()

Señal Notifier:

void primaryScreenChanged(QScreen *screen)

Véase también screens().

quitOnLastWindowClosed : bool

Esta propiedad indica si la aplicación se cierra implícitamente cuando se cierra la última ventana.

Por defecto es true.

Si esta propiedad es true, la aplicación intentará salir cuando se cierre la última ventana primaria visible (es decir, la ventana de nivel superior sin padre transitorio).

Tenga en cuenta que el intento de abandono puede no resultar necesariamente en el abandono de la aplicación, por ejemplo si todavía hay instancias QEventLoopLocker activas, o el evento QEvent::Quit es ignorado.

Funciones de acceso:

bool quitOnLastWindowClosed()
void setQuitOnLastWindowClosed(bool quit)

Véase también quit() y QWindow::close().

windowIcon : QIcon

Esta propiedad contiene el icono por defecto de la ventana

Funciones de acceso:

QIcon windowIcon()
void setWindowIcon(const QIcon &icon)

Véase también QWindow::setIcon() y Establecer el icono de la aplicación.

Documentación de las funciones miembro

QGuiApplication::QGuiApplication(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 QGuiApplication. 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 pixmaps, bitmaps, etc.).

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

Opciones de línea de comandos soportadas

Todos los programas Qt soportan automáticamente un conjunto de opciones de línea de comandos que permiten modificar la forma en que Qt interactuará con el sistema de ventanas. Algunas de las opciones también son accesibles a través de variables de entorno, que son la forma preferida si la aplicación puede lanzar subprocesos GUI u otras aplicaciones (las variables de entorno serán heredadas por los procesos hijos). En caso de duda, utilice las variables de entorno.

Las opciones actualmente soportadas son las siguientes

  • -platform platformName[:options], especifica el plugin Qt Platform Abstraction (QPA).

    Anula la variable de entorno QT_QPA_PLATFORM.

  • -platformpluginpath path, especifica la ruta a los plugins de plataforma.

    Sustituye a la variable de entorno QT_QPA_PLATFORM_PLUGIN_PATH.

  • -platformtheme platformTheme, especifica el tema de la plataforma.

    Sustituye a la variable de entorno QT_QPA_PLATFORMTHEME.

  • -plugin plugin, especifica los plugins adicionales a cargar. El argumento puede aparecer varias veces.

    Concatenado con los plugins en la variable de entorno QT_QPA_GENERIC_PLUGINS.

  • -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.
  • -qwindowgeometry geometry, especifica la geometría de la ventana principal utilizando la sintaxis X11. Por ejemplo: -qwindowgeometry 100x100+50+50
  • -qwindowicon, establece el icono de la ventana por defecto
  • -qwindowtitle, establece el título de la primera ventana
  • -reverse, establece la dirección de diseño de la aplicación en Qt::RightToLeft. Esta opción está pensada para ayudar a la depuración y no debe utilizarse en producción. El valor por defecto se detecta automáticamente a partir de la configuración regional del usuario (véase también QLocale::textDirection()).
  • -session sesión, restaura la aplicación desde una sesión anterior.

Las siguientes opciones estándar de línea de comandos están disponibles para X11:

  • -display hostname:screen_number, cambia la visualización en X11.

    Anula la variable de entorno DISPLAY.

  • -geometry geometry, igual que -qwindowgeometry.

Argumentos específicos de la plataforma

Puede especificar argumentos específicos de la plataforma para la opción -platform. Colóquelos después del nombre del complemento de plataforma, seguidos de dos puntos y separados por comas. Por ejemplo, -platform windows:dialogs=xp,fontengine=freetype.

Los siguientes parámetros están disponibles para -platform windows:

  • altgr, detecta la tecla AltGr que se encuentra en algunos teclados como Qt::GroupSwitchModifier (desde Qt 5.12).
  • darkmode=[0|1|2] controla cómo responde Qt a la activación del modo oscuro para aplicaciones introducido en Windows 10 1903 (desde Qt 5.15).

    Un valor de 0 desactiva el soporte del modo oscuro.

    Un valor de 1 hace que Qt cambie los bordes de la ventana a negro cuando se activa el Modo Oscuro para aplicaciones y no se está utilizando un Tema de Alto Contraste. Esto está pensado para aplicaciones que implementan su propia tematización.

    Un valor de 2 hará además que se desactive el estilo Windows Vista y se cambie al estilo Windows utilizando una paleta simplificada en modo oscuro. Esto es actualmente experimental a la espera de la introducción de un nuevo estilo que se adapte correctamente al modo oscuro.

    A partir de Qt 6.5, el valor por defecto es 2; para desactivar el soporte del modo oscuro, establece el valor a 0 o 1.

  • dialogs=[xp|none], xp utiliza diálogos nativos estilo XP y none los deshabilita.
  • fontengine=freetype, utiliza el motor de fuentes FreeType.
  • fontengine=gdi, usa la base de datos de fuentes heredada basada en GDI y por defecto usa el motor de fuentes GDI (que por otra parte sólo se usa para algunos tipos de fuentes o propiedades de fuentes.) (Desde Qt 6.8).
  • menus=[native|none]controla el uso de menús nativos.

    Los menús nativos se implementan utilizando la API Win32 y son más simples que los menús basados en QMenu, por ejemplo, ya que no permiten colocar widgets en ellos o cambiar propiedades como las fuentes y no proporcionan señales hover. Están pensados principalmente para Qt Quick. Por defecto, se utilizarán si la aplicación no es una instancia de QApplication o para aplicaciones Qt Quick Controls 2 (desde Qt 5.10).

  • nocolorfonts Desactivar las fuentes DirectWrite Color (desde Qt 5.8).
  • nodirectwrite Desactivar las fuentes DirectWrite (desde Qt 5.8). Esto implícitamente también selecciona el motor de fuentes GDI.
  • nomousefromtouch Ignora los eventos de ratón sintetizados a partir de eventos táctiles por el sistema operativo.
  • nowmpointer Cambia del manejo de mensajes de entrada de puntero al manejo de ratón heredado (desde Qt 5.12).
  • reverse Activa el modo de derecha a izquierda (experimental). Las barras de título de Windows se mostrarán en consecuencia en configuraciones regionales de Derecha a Izquierda (desde Qt 5.13).
  • tabletabsoluterange=<value> Establece un valor para la detección del modo ratón de las tabletas WinTab (Legacy, desde Qt 5.3).

El siguiente parámetro está disponible para -platform cocoa (en macOS):

  • fontengine=freetype, utiliza el motor de fuentes FreeType.

Para más información sobre los argumentos específicos de plataforma disponibles para plataformas Linux embebidas, véase Qt para Linux embebido.

Véase también arguments() y QGuiApplication::platformName.

[virtual noexcept] QGuiApplication::~QGuiApplication()

Destruye la aplicación.

[static] QWindowList QGuiApplication::allWindows()

Devuelve una lista de todas las ventanas de la aplicación.

La lista está vacía si no hay ventanas.

Véase también topLevelWindows().

[static] Qt::ApplicationState QGuiApplication::applicationState()

Devuelve el estado actual de la aplicación.

Puede reaccionar a los cambios de estado de la aplicación para realizar acciones como detener/reanudar tareas que consumen mucha CPU, liberar/cargar recursos o guardar/restaurar datos de la aplicación.

[signal] void QGuiApplication::applicationStateChanged(Qt::ApplicationState state)

Esta señal se emite cuando cambia la dirección state de la aplicación.

Véase también applicationState().

[static] void QGuiApplication::changeOverrideCursor(const QCursor &cursor)

Cambia el cursor de anulación de la aplicación actualmente activa a cursor.

Esta función no tiene efecto si no se ha llamado a setOverrideCursor().

Véase también setOverrideCursor(), overrideCursor(), restoreOverrideCursor() y QWidget::setCursor().

[static] QClipboard *QGuiApplication::clipboard()

Devuelve el objeto para interactuar con el portapapeles.

[signal] void QGuiApplication::commitDataRequest(QSessionManager &manager)

Esta señal se refiere a la gestión de la sesión. Se emite cuando QSessionManager quiere que la aplicación guarde todos sus datos.

Normalmente esto significa guardar todos los archivos abiertos, después de obtener el permiso del usuario. Además, es posible que desee proporcionar un medio por el cual el usuario puede cancelar el cierre.

No debería salir de la aplicación dentro de esta señal. En su lugar, el gestor de sesiones puede o no hacerlo después, dependiendo del contexto.

Advertencia: Dentro de esta señal, no es posible ninguna interacción con el usuario, a menos que pidas permiso explícito a manager. Véase QSessionManager::allowsInteraction() y QSessionManager::allowsErrorInteraction() para más detalles y ejemplos de uso.

Nota: Debe utilizar Qt::DirectConnection cuando se conecte a esta señal.

Véase también isSessionRestored(), sessionId(), saveStateRequest(), y Gestión de sesiones.

[static] bool QGuiApplication::desktopSettingsAware()

Devuelve true si Qt está configurado para utilizar los colores, fuentes, etc. estándar del sistema; en caso contrario devuelve false. El valor por defecto es true.

Véase también setDesktopSettingsAware().

qreal QGuiApplication::devicePixelRatio() const

Devuelve la relación de píxeles de dispositivo de pantalla más alta encontrada en el sistema. Esta es la relación entre los píxeles físicos y los píxeles independientes del dispositivo.

Utilice esta función sólo cuando no sepa cuál es la ventana de destino. Si conoce la ventana de destino, utilice QWindow::devicePixelRatio() en su lugar.

Véase también QWindow::devicePixelRatio().

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

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

[static] int QGuiApplication::exec()

Entra en el bucle principal de eventos y espera hasta que se llama a exit(), y 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().

Para que su aplicación realice un procesamiento en reposo, por ejemplo, ejecutando 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.

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

[static] QObject *QGuiApplication::focusObject()

Devuelve el QObject en la ventana actualmente activa que será el receptor final de eventos ligados al foco, como eventos de tecla.

[signal] void QGuiApplication::focusObjectChanged(QObject *focusObject)

Esta señal se emite cuando se cambia el receptor final de los eventos ligados al foco. focusObject es el nuevo receptor.

Véase también focusObject().

[static] QWindow *QGuiApplication::focusWindow()

Devuelve el QWindow que recibe eventos ligados al foco, como eventos de teclas.

Véase también QWindow::requestActivate().

[signal] void QGuiApplication::focusWindowChanged(QWindow *focusWindow)

Esta señal se emite cuando cambia la ventana enfocada. focusWindow es la nueva ventana enfocada.

Véase también focusWindow().

[static] QFont QGuiApplication::font()

Devuelve la fuente por defecto de la aplicación.

Véase también setFont().

[signal] void QGuiApplication::fontDatabaseChanged()

Esta señal se emite cuando las fuentes disponibles han cambiado.

Esto puede ocurrir cuando se añaden o eliminan fuentes de la aplicación, o cuando cambian las fuentes del sistema.

Véase también QFontDatabase::addApplicationFont(), QFontDatabase::addApplicationFontFromData(), QFontDatabase::removeAllApplicationFonts(), y QFontDatabase::removeApplicationFont().

[static] Qt::HighDpiScaleFactorRoundingPolicy QGuiApplication::highDpiScaleFactorRoundingPolicy()

Devuelve la política de redondeo del factor de escala de PPP alto.

Véase también setHighDpiScaleFactorRoundingPolicy().

[static] QInputMethod *QGuiApplication::inputMethod()

devuelve el método de entrada.

El método de entrada devuelve propiedades sobre el estado y la posición del teclado virtual. También proporciona información sobre la posición del elemento de entrada enfocado actual.

Véase también QInputMethod.

[static] bool QGuiApplication::isLeftToRight()

Devuelve true si la dirección de diseño de la aplicación es Qt::LeftToRight; en caso contrario devuelve false.

Véase también layoutDirection() y isRightToLeft().

[static] bool QGuiApplication::isRightToLeft()

Devuelve true si la dirección de diseño de la aplicación es Qt::RightToLeft; en caso contrario devuelve false.

Véase también layoutDirection() y isLeftToRight().

bool QGuiApplication::isSavingSession() const

Devuelve true si la aplicación está guardando actualmente la sesión; en caso contrario devuelve false.

Esto es true cuando se emiten commitDataRequest() y saveStateRequest(), pero también cuando las ventanas son cerradas posteriormente por la gestión de sesiones.

Véase también sessionId(), commitDataRequest(), y saveStateRequest().

bool QGuiApplication::isSessionRestored() const

Devuelve true si la aplicación ha sido restaurada desde una sesión anterior; en caso contrario devuelve false.

Véase también sessionId(), commitDataRequest() y saveStateRequest().

[static] Qt::KeyboardModifiers QGuiApplication::keyboardModifiers()

Devuelve el estado actual de las teclas modificadoras del teclado. El estado actual se actualiza sincrónicamente a medida que la cola de eventos se vacía de eventos que cambiarán espontáneamente el estado del teclado (eventosQEvent::KeyPress y QEvent::KeyRelease ).

Debe tenerse en cuenta que esto puede no reflejar las teclas reales pulsadas en el dispositivo de entrada en el momento de la llamada, sino más bien los modificadores como se informó por última vez en uno de los eventos anteriores. Si no hay teclas pulsadas, se devuelve Qt::NoModifier.

Véase también mouseButtons() y queryKeyboardModifiers().

[signal] void QGuiApplication::lastWindowClosed()

Esta señal se emite desde exec() cuando se cierra la última ventana primaria visible (es decir, la ventana de nivel superior sin padre transitorio).

Por defecto, QGuiApplication se cierra cuando se emite esta señal. Esta función puede desactivarse estableciendo quitOnLastWindowClosed en false.

Véase también QWindow::close(), QWindow::isTopLevel(), y QWindow::transientParent().

Devuelve la última ventana modal mostrada. Si no hay ninguna ventana modal visible, esta función devuelve cero.

Una ventana modal es una ventana que tiene su propiedad modality establecida a Qt::WindowModal o Qt::ApplicationModal. Una ventana modal debe cerrarse antes de que el usuario pueda continuar con otras partes del programa.

Las ventanas modales se organizan en una pila. Esta función devuelve la ventana modal en la parte superior de la pila.

Véase también Qt::WindowModality y QWindow::setModality().

[static] Qt::MouseButtons QGuiApplication::mouseButtons()

Devuelve el estado actual de los botones del ratón. El estado actual se actualiza sincrónicamente a medida que la cola de eventos se vacía de eventos que cambiarán espontáneamente el estado del ratón (eventosQEvent::MouseButtonPress y QEvent::MouseButtonRelease ).

Debe tenerse en cuenta que esto puede no reflejar los botones reales mantenidos en el dispositivo de entrada en el momento de la llamada, sino más bien los botones del ratón como se informó por última vez en uno de los eventos anteriores. Si no hay ningún botón del ratón pulsado, se devuelve Qt::NoButton.

Véase también keyboardModifiers().

template <typename QNativeInterface> QNativeInterface *QGuiApplication::nativeInterface() const

Devuelve una interfaz nativa del tipo dado para la aplicación.

Esta función proporciona acceso a la funcionalidad específica de la plataforma QGuiApplication, tal y como se define en el espacio de nombres QNativeInterface:

QNativeInterface::QWaylandApplication

Interfaz nativa de una aplicación Wayland

QNativeInterface::QX11Application

Interfaz nativa para una aplicación X11

Si la interfaz solicitada no está disponible, se devuelve nullptr.

[override virtual] bool QGuiApplication::notify(QObject *object, QEvent *event)

Reimplementa: QCoreApplication::notify(QObject *receptor, QEvent *evento).

[static] QCursor *QGuiApplication::overrideCursor()

Devuelve el cursor de anulación de aplicación activo.

Esta función devuelve nullptr si no se ha definido ningún cursor de aplicación (es decir, la pila del cursor interno está vacía).

Véase también setOverrideCursor() y restoreOverrideCursor().

[static] QPalette QGuiApplication::palette()

Devuelve la paleta actual de la aplicación.

Las funciones que no se hayan establecido explícitamente reflejarán el tema de la plataforma del sistema.

Véase también setPalette().

[static] Qt::KeyboardModifiers QGuiApplication::queryKeyboardModifiers()

Consulta y devuelve el estado de las teclas modificadoras del teclado. A diferencia de keyboardModifiers, este método devuelve las teclas reales pulsadas en el dispositivo de entrada en el momento de llamar al método.

No depende de que los eventos de pulsación de teclas hayan sido recibidos por este proceso, lo que hace posible comprobar los modificadores mientras se mueve una ventana, por ejemplo. Ten en cuenta que en la mayoría de los casos, deberías utilizar keyboardModifiers(), que es más rápido y preciso ya que contiene el estado de los modificadores tal y como estaban cuando se recibió el evento actualmente procesado.

Véase también keyboardModifiers().

[static] void QGuiApplication::restoreOverrideCursor()

Deshace la última setOverrideCursor().

Si se ha llamado dos veces a setOverrideCursor(), al llamar a restoreOverrideCursor() se activará el primer cursor establecido. Si se llama a esta función por segunda vez, se restaurarán los cursores originales de los widgets.

Véase también setOverrideCursor() y overrideCursor().

[signal] void QGuiApplication::saveStateRequest(QSessionManager &manager)

Esta señal se ocupa de la gestión de la sesión. Se invoca cuando session manager desea que la aplicación conserve su estado para una sesión futura.

Por ejemplo, un editor de texto crearía un archivo temporal que incluye el contenido actual de sus buffers de edición, la localización del cursor y otros aspectos de la sesión de edición actual.

Nunca se debe salir de la aplicación dentro de esta señal. En su lugar, el gestor de sesiones puede o no hacer esto después, dependiendo del contexto. Además, es muy probable que la mayoría de los gestores de sesión soliciten un estado guardado inmediatamente después de iniciar la aplicación. Esto permite al gestor de sesiones conocer la política de reinicio de la aplicación.

Advertencia: Dentro de esta señal, no es posible ninguna interacción con el usuario, a menos que se pida permiso explícito a manager. Véase QSessionManager::allowsInteraction() y QSessionManager::allowsErrorInteraction() para más detalles.

Nota: Debes utilizar Qt::DirectConnection cuando te conectes a esta señal.

Véase también isSessionRestored(), sessionId(), commitDataRequest(), y Gestión de sesiones.

[signal] void QGuiApplication::screenAdded(QScreen *screen)

Esta señal se emite cada vez que se añade una nueva pantalla screen al sistema.

Véase también screens(), primaryScreen, y screenRemoved().

[static] QScreen *QGuiApplication::screenAt(const QPoint &point)

Devuelve la pantalla en point, o nullptr si está fuera de cualquier pantalla.

point está en relación con la virtualGeometry() de cada conjunto de hermanos virtuales. Si el punto se asigna a más de un conjunto de hermanos virtuales, se devuelve la primera coincidencia. Si desea buscar sólo los hermanos virtuales de escritorio de una pantalla conocida (por ejemplo, hermanos de la pantalla de la ventana de su aplicación QWidget::windowHandle()->screen()), utilice QScreen::virtualSiblingAt().

[signal] void QGuiApplication::screenRemoved(QScreen *screen)

Esta señal se emite cada vez que se retira un screen del sistema. Proporciona una oportunidad para gestionar las ventanas en la pantalla antes de que Qt vuelva a moverlas a la pantalla principal.

Véase también screens(), screenAdded(), QObject::destroyed(), y QWindow::setScreen().

[static] QList<QScreen *> QGuiApplication::screens()

Devuelve una lista de todas las pantallas asociadas al sistema de ventanas al que está conectada la aplicación.

QString QGuiApplication::sessionId() const

Devuelve el identificador de la sesión actual.

Si la aplicación ha sido restaurada desde una sesión anterior, este identificador es el mismo que tenía en esa sesión anterior. Se garantiza que el identificador de sesión es único tanto para diferentes aplicaciones como para diferentes instancias de la misma aplicación.

Véase también isSessionRestored(), sessionKey(), commitDataRequest() y saveStateRequest().

QString QGuiApplication::sessionKey() const

Devuelve la clave de la sesión actual.

Si la aplicación se ha restaurado desde una sesión anterior, esta clave es la misma que había cuando finalizó la sesión anterior.

La clave de sesión cambia cada vez que se guarda la sesión. Si se cancela el proceso de cierre, se utilizará otra clave de sesión al volver a cerrar.

Véase también isSessionRestored(), sessionId(), commitDataRequest() y saveStateRequest().

[slot, since 6.5] void QGuiApplication::setBadgeNumber(qint64 number)

Establece la insignia de la aplicación en number.

Resulta útil para informar al usuario sobre el número de mensajes no leídos o similares.

La insignia se superpondrá al icono de la aplicación en el Dock en macOS, el icono de la pantalla de inicio en iOS o la barra de tareas en Windows y Linux.

Si el número está fuera del rango admitido por la plataforma, el número se ajustará al rango admitido. Si el número no cabe dentro de la insignia, el número puede ser elidido visualmente.

Si se pone el número a 0, se borrará el distintivo.

Esta función se introdujo en Qt 6.5.

Véase también applicationName.

[static] void QGuiApplication::setDesktopSettingsAware(bool on)

Establece si Qt debe usar los colores, fuentes, etc. estándar del sistema a on. Por defecto, esto es true.

Esta función debe ser llamada antes de crear el objeto QGuiApplication, así:

int main(int argc, char *argv[])
{
    QApplication::setDesktopSettingsAware(false);
    QApplication app(argc, argv);
    // ...
    return app.exec();
}

Véase también desktopSettingsAware().

[static] void QGuiApplication::setFont(const QFont &font)

Cambia la fuente por defecto de la aplicación a font.

Véase también font().

[static] void QGuiApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy policy)

Establece la política de redondeo del factor de escala de PPP alto para la aplicación. policy decide cómo se manejan los factores de escala no enteros (como el 150% de Windows).

Las dos opciones principales son si los factores de escala fraccionarios deben redondearse a un entero o no. Mantener el factor de escala como está hará que el tamaño de la interfaz de usuario coincida exactamente con la configuración del sistema operativo, pero puede causar errores de pintura, por ejemplo con el estilo de Windows.

Si se desea el redondeo, entonces se debe decidir qué tipo de redondeo. El redondeo matemáticamente correcto está soportado pero puede no dar los mejores resultados visuales: Considere si desea renderizar 1.5x como 1x ("IU pequeña") o como 2x ("IU grande"). Consulte el enum Qt::HighDpiScaleFactorRoundingPolicy para obtener una lista completa de todas las opciones.

Esta función debe ser llamada antes de crear el objeto de aplicación. El accesor QGuiApplication::highDpiScaleFactorRoundingPolicy() reflejará el entorno, si está configurado.

El valor por defecto es Qt::HighDpiScaleFactorRoundingPolicy::PassThrough.

Véase también highDpiScaleFactorRoundingPolicy().

[static] void QGuiApplication::setOverrideCursor(const QCursor &cursor)

Establece el cursor de anulación de la aplicación en cursor.

Los cursores de anulación de aplicación están pensados para mostrar al usuario que la aplicación se encuentra en un estado especial, por ejemplo durante una operación que puede llevar algún tiempo.

Este cursor se mostrará en todos los widgets de la aplicación hasta que se llame a restoreOverrideCursor() o a otro setOverrideCursor().

Los cursores de la aplicación se almacenan en una pila interna. setOverrideCursor() empuja el cursor a la pila, y restoreOverrideCursor() saca el cursor activo de la pila. changeOverrideCursor() cambia el cursor activo de la aplicación.

Cada setOverrideCursor() debe ir seguido de su correspondiente restoreOverrideCursor(), de lo contrario la pila nunca se vaciará.

Ejemplo:

QGuiApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
calculateHugeMandelbrot();              // lunch time...
QGuiApplication::restoreOverrideCursor();

Véase también overrideCursor(), restoreOverrideCursor(), changeOverrideCursor() y QWidget::setCursor().

[static] void QGuiApplication::setPalette(const QPalette &pal)

Cambia la paleta de la aplicación a pal.

Los roles de color de esta paleta se combinan con el tema de la plataforma del sistema para formar la paleta final de la aplicación.

Véase también palette().

[static] QStyleHints *QGuiApplication::styleHints()

Devuelve los consejos de estilo de la aplicación.

Las sugerencias de estilo encapsulan un conjunto de propiedades dependientes de la plataforma, como intervalos de doble clic, selección de ancho completo y otras.

Las sugerencias pueden utilizarse para lograr una mayor integración con la plataforma subyacente.

Véase también QStyleHints.

[static] void QGuiApplication::sync()

Función que puede ser usada para sincronizar el estado de Qt con el estado del sistema de ventanas.

Esta función vaciará primero los eventos de Qts llamando a QCoreApplication::processEvents(), luego el plugin de la plataforma se sincronizará con el sistema de ventanas, y finalmente los eventos de Qts se recibirán mediante otra llamada a QCoreApplication::processEvents();

Esta función consume mucho tiempo y se desaconseja su uso.

[static] QWindow *QGuiApplication::topLevelAt(const QPoint &pos)

Devuelve la ventana de nivel superior en la posición dada pos, si existe.

[static] QWindowList QGuiApplication::topLevelWindows()

Devuelve una lista de las ventanas de nivel superior de la aplicación.

Véase también allWindows().

Documentación de macros

qGuiApp

Un puntero global que hace referencia al objeto de aplicación único. Sólo válido para su uso cuando ese objeto es un QGuiApplication.

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

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