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: |
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 sistema | desktopSettingsAware(), setDesktopSettingsAware(), styleHints(), palette(), setPalette(), font(), setFont(). |
| Gestión de eventos | exec(), processEvents(), exit(), quit(). sendEvent(), postEvent(), sendPostedEvents(), removePostedEvents(), notify(). |
| Windows | allWindows(), topLevelWindows(), focusWindow(), clipboard(), topLevelAt(). |
| Manejo avanzado del cursor | overrideCursor(), setOverrideCursor(), restoreOverrideCursor(). |
| Gestión de sesiones | isSessionRestored(), sessionId(), commitDataRequest(), saveStateRequest(). |
| Varios | startingUp(), 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:
androidcocoaes un plugin de plataforma para macOS.directfbeglfses 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)linuxfbescribe directamente en el framebuffer. Para más información, véase LinuxFB.minimalse 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.minimalegles un plugin de ejemplo.offscreenqnxwindowswaylandes un plugin de plataforma para el protocolo de servidor de pantalla Wayland, usado en algunos escritorios Linux y sistemas embebidos.xcbes 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
-platformplatformName[:options], especifica el plugin Qt Platform Abstraction (QPA).Anula la variable de entorno
QT_QPA_PLATFORM.-platformpluginpathpath, especifica la ruta a los plugins de plataforma.Sustituye a la variable de entorno
QT_QPA_PLATFORM_PLUGIN_PATH.-platformthemeplatformTheme, especifica el tema de la plataforma.Sustituye a la variable de entorno
QT_QPA_PLATFORMTHEME.-pluginplugin, 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 formatoport:1234[,block], donde block es opcional y hará que la aplicación espere hasta que un depurador se conecte a ella.-qwindowgeometrygeometry, 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()).-sessionsesió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:
-displayhostname:screen_number, cambia la visualización en X11.Anula la variable de entorno
DISPLAY.-geometrygeometry, 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 teclaAltGrque 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],xputiliza diálogos nativos estilo XP ynonelos 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).
nocolorfontsDesactivar las fuentes DirectWrite Color (desde Qt 5.8).nodirectwriteDesactivar las fuentes DirectWrite (desde Qt 5.8). Esto implícitamente también selecciona el motor de fuentes GDI.nomousefromtouchIgnora los eventos de ratón sintetizados a partir de eventos táctiles por el sistema operativo.nowmpointerCambia del manejo de mensajes de entrada de puntero al manejo de ratón heredado (desde Qt 5.12).reverseActiva 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().
[static] QWindow *QGuiApplication::modalWindow()
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:
Interfaz nativa de una aplicación Wayland | |
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.