Sur cette page

Qt Quick Exemples - Fenêtre et écran

Cet exemple illustre les types « Window » et « Screen » dans QML.

Fenêtre de contrôle comportant des boutons de visibilité et des propriétés d'écran, ainsi qu'une fenêtre de test secondaire

Les sections «Fenêtre » et « Écran » expliquent comment :

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

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

Exécution de l'exemple

Vous pouvez exécuter l’exemple à partir de :

Implémentation de la fenêtre

Un écran de démarrage peut être créé à l’aide de l’indicateur ` Qt.SplashScreen ` et doit être défini comme ` ApplicationModal ` pour empêcher toute interaction avec la fenêtre principale. Si la fenêtre de démarrage est également transparente et affiche une image partiellement transparente, elle ressemblera alors à une fenêtre de forme personnalisée.

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

Dans cet exemple, un « Timer » fermera automatiquement l’écran de démarrage, mais dans une application réelle, vous souhaiterez peut-être vous connecter à un signal provenant de la logique de l’application pour masquer 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, dotée de boutons et de cases à cocher permettant de contrôler et de fournir un retour d’information sur l’état d’une fenêtre secondaire. Chaque case à cocher dispose d’une liaison vers la propriété dont elle affiche l’état, ainsi que d’un gestionnaire onClicked permettant de modifier cet état. Il s’agit d’un modèle classique permettant de 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 dispose de plusieurs propriétés généralement utiles aux applications qui doivent faire pivoter certains contenus lorsque l’orientation de l’écran change, pour positionner des fenêtres à l’écran ou pour convertir des unités réelles en unités de pixels logiques. Le fichier CurrentScreen.qml (qui s’affiche en ligne dans window.qml ou peut être exécuté seul à l’aide de l’outil qml) se contente d’afficher les valeurs des propriétés, tandis que l’écran de démarrage les utilise pour centrer la fenêtre à l’écran.

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

Si une fenêtre de niveau supérieur ( Window ) est imbriquée à l’intérieur d’une fenêtre de niveau intermédiaire ( Item ) ou d’une autre fenêtre (Window), la fenêtre interne devient transitoire par rapport à la fenêtre externe (voir Window pour plus d’explications). Mais si vous souhaitez créer plusieurs fenêtres de niveau supérieur en tant qu’éléments équivalents sans lien entre eux, vous pouvez les créer à l’intérieur d’un élément racine non visuel ( QtObject ), comme le montre cet exemple.

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