Auf dieser Seite

Qt Quick Beispiele – Fenster und Bildschirm

Dieses Beispiel veranschaulicht die Typen „Window“ und „Screen“ in QML.

Steuerungsfenster mit Schaltflächen zur Sichtbarkeit und Bildschirmeinstellungen sowie einem sekundären Testfenster

„Fenster und Bildschirm“ zeigt, wie man:

  • ein Fenster in QML erstellt
  • dessen visibility
  • beim Start der Anwendung einen Begrüßungsbildschirm anzeigen
  • auf die Eigenschaften des Screen

Außerdem wird gezeigt, wie man QML in Ressourcen bündelt und ein Symbol bereitstellt, um eine eigenständige QML-Desktopanwendung zu erstellen.

Ausführen des Beispiels

Sie können das Beispiel wie folgt ausführen:

Fensterimplementierung

Ein Startbildschirm kann mit dem Flag „ Qt.SplashScreen “ erstellt werden und sollte mit „ ApplicationModal “ versehen werden, um eine Interaktion mit dem Hauptfenster zu verhindern. Wenn das Startfenster zudem transparent ist und ein teilweise transparentes Bild anzeigt, sieht es wie ein geformtes Fenster aus.

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

In diesem Beispiel wird der Begrüßungsbildschirm durch ein „ Timer “ automatisch ausgeblendet, doch in einer echten Anwendung möchten Sie möglicherweise eine Verbindung zu einem Signal aus der Anwendungslogik herstellen, um den Begrüßungsbildschirm nach Abschluss der Initialisierung auszublenden.

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

Das Hauptfenster in diesem Beispiel ist das Steuerungsfenster mit einigen Schaltflächen und Kontrollkästchen, die zur Steuerung und Rückmeldung des Zustands eines sekundären Fensters dienen. Jedes Kontrollkästchen verfügt über eine Bindung an die Eigenschaft, deren Zustand es anzeigt, sowie über einen onClicked-Handler zum Ändern des Zustands. Dies ist das typische Muster, um eine bidirektionale Bindung zu erstellen und gleichzeitig Bindungsschleifen zu vermeiden.

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 verfügt über mehrere Eigenschaften, die allgemein nützlich für Anwendungen sind, die bei einer Änderung der Bildschirmausrichtung Inhalte drehen, Fenster auf dem Bildschirm positionieren oder reale Einheiten in logische Pixeleinheiten umrechnen müssen. „CurrentScreen.qml“ (das inline in „window.qml“ angezeigt wird oder eigenständig mit dem qml-Tool ausgeführt werden kann) zeigt lediglich die Eigenschaftswerte an, während der Startbildschirm sie verwendet, um das Fenster auf dem Bildschirm zu zentrieren.

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

Wenn ein ` Window ` in einem ` Item ` oder einem anderen `Window` verschachtelt ist, wird das innere Fenster für das äußere transienten (siehe Window für weitere Erläuterungen). Wenn Sie jedoch mehrere Fenster der obersten Ebene als voneinander unabhängige Peers erstellen möchten, können Sie diese innerhalb eines nicht-visuellen ` QtObject `-Stammelements erstellen, wie es dieses Beispiel zeigt.

Beispielprojekt @ 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.