En esta página

Qt Quick Ejemplos - Ventana y Pantalla

Este ejemplo muestra los tipos Window y Screen en QML.

Window y Screen muestran cómo

  • crear una ventana en QML
  • controlarla visibility
  • presentar una pantalla de inicio durante el arranque de la aplicación
  • acceder a las propiedades de la ventana Screen

También demuestra cómo empaquetar QML en recursos y proporcionar un icono para crear una aplicación de escritorio QML independiente.

Ejecutar el ejemplo

Para ejecutar el ejemplo desde Qt Creator, abra el modo Welcome y seleccione el ejemplo de Examples. Para obtener más información, consulte Qt Creator: Tutorial: Construir y ejecutar.

Implementación de la ventana

Una pantalla splash puede ser creada con la bandera Qt.SplashScreen, y debe ser ApplicationModal para prevenir la interacción con la ventana principal. Si la ventana splash es también transparente, y muestra una imagen parcialmente transparente, entonces parecerá una ventana con forma.

Window {
    id: splash
    color: "transparent"
    title: "Splash Window"
    modality: Qt.ApplicationModal
    flags: Qt.SplashScreen
    property int timeoutInterval: 2000
    signal timeout

En este ejemplo un Timer descartará automáticamente la pantalla splash, pero en una aplicación real es posible que desee conectarse a una señal de la lógica de la aplicación para ocultar el splash cuando la inicialización se haya completado.

Timer {
    interval: splash.timeoutInterval; running: splash.visible; repeat: false
    onTriggered: splash.exit()
}

La ventana principal en este ejemplo es la ventana de control, con algunos botones y casillas de verificación para controlar y proporcionar información sobre el estado de una ventana secundaria. Cada casilla de verificación tiene un enlace a la propiedad cuyo estado está mostrando, y también un controlador onClicked para cambiar el estado. Este es el patrón típico para crear un enlace bidireccional evitando bucles de enlace.

CheckBox {
    text: "Windowed"
    height: showButton.height
    width: col.cellWidth
    Binding on checked { value: root.testWindow.visibility === Window.Windowed }
    onClicked: root.testWindow.visibility = Window.Windowed
}

Screen tiene varias propiedades que son generalmente útiles para aplicaciones que necesitan rotar algún contenido cuando cambia la orientación de la pantalla, para posicionar ventanas en la pantalla o para convertir unidades reales a unidades lógicas de píxeles. CurrentScreen.qml (que se muestra en línea en window.qml, o puede ejecutarse por sí mismo con la herramienta qml) simplemente muestra los valores de las propiedades, mientras que la pantalla de inicio los utiliza para centrar la ventana en la pantalla.

    x: (Screen.width - splashImage.width) / 2
    y: (Screen.height - splashImage.height) / 2

Si un Window está anidado dentro de un Item u otra Ventana, la ventana interior se convierte en transitoria para la exterior (ver Window para más explicación). Pero si desea crear varias ventanas de nivel superior como pares no relacionados, puede crearlas dentro de un elemento raíz no visual QtObject, como hace este ejemplo.

Proyecto de ejemplo @ code.qt.io

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