Sur cette page

Qt Quick Exemples - Fenêtre et écran

Cet exemple présente les types Window et Screen en QML.

Window and Screen montre comment

  • créer une fenêtre en QML
  • contrôler la fenêtre visibility
  • présenter un écran d'accueil au démarrage de l'application
  • accéder aux propriétés de la fenêtre Screen

Il montre également comment intégrer QML dans des ressources et fournir une icône pour créer une application de bureau QML autonome.

Exécution de l'exemple

Pour exécuter l'exemple à partir de Qt Creatorouvrez le mode Welcome et sélectionnez l'exemple à partir de Examples. Pour plus d'informations, voir Qt Creator: Tutoriel : Construire et exécuter.

Mise en œuvre de la fenêtre

Un écran de démarrage peut être créé avec le drapeau Qt.SplashScreen, et doit être ApplicationModal pour empêcher toute interaction avec la fenêtre principale. Si la fenêtre d'accueil est également transparente et affiche une image partiellement transparente, elle ressemblera alors à une fenêtre en forme.

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

Dans cet exemple, Timer fermera automatiquement l'écran de démarrage, mais dans une application réelle, vous voudrez peut-être vous connecter à un signal de la logique de l'application pour cacher l'écran de démarrage une fois l'initialisation terminée.

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

La fenêtre principale de cet exemple est la fenêtre de contrôle, avec quelques boutons et cases à cocher pour contrôler et fournir un retour d'information sur l'état d'une fenêtre secondaire. Chaque case à cocher possède une liaison avec la propriété dont elle affiche l'état, ainsi qu'un gestionnaire onClicked pour modifier l'état. Il s'agit d'un modèle typique pour créer une liaison bidirectionnelle tout en évitant les boucles de liaison.

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 CurrentScreen.qml possède plusieurs propriétés qui sont généralement utiles aux applications qui ont besoin de faire pivoter un contenu lorsque l'orientation de l'écran change, de positionner des fenêtres sur l'écran ou de convertir des unités réelles en unités logiques de pixels. CurrentScreen.qml (qui est affiché en ligne dans window.qml, ou qui peut être exécuté seul avec l'outil qml) affiche simplement les valeurs des propriétés, tandis que l'écran d'accueil les utilise pour centrer la fenêtre sur l'écran.

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

Si un site Window est imbriqué dans un site Item ou une autre fenêtre, la fenêtre intérieure devient transitoire pour la fenêtre extérieure (voir Window pour plus d'explications). Mais si vous voulez créer plusieurs fenêtres de haut niveau en tant que pairs non liés, vous pouvez les créer à l'intérieur d'un élément racine non visuel QtObject, comme le fait cet exemple.

Exemple de projet @ 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.