Auf dieser Seite

State QML Type

Definiert Konfigurationen von Objekten und Eigenschaften. Mehr...

Import Statement: import QtQuick

Eigenschaften

Ausführliche Beschreibung

Ein Zustand ist eine Sammlung gebündelter Änderungen gegenüber der Standardkonfiguration.

Alle Elemente verfügen über einen Standardzustand, der die Standardkonfiguration von Objekten und Eigenschaftswerten festlegt. Neue Zustände können definiert werden, indem „State“-Elemente zur Eigenschaft „ states “ hinzugefügt werden, damit Elemente zwischen verschiedenen Konfigurationen wechseln können. Diese Konfigurationen können beispielsweise dazu verwendet werden, unterschiedliche Sätze von Eigenschaftswerten anzuwenden oder verschiedene Skripte auszuführen.

Das folgende Beispiel zeigt ein einzelnes „ Rectangle “-Element. Im Standardzustand ist das Rechteck schwarz gefärbt. Im Zustand „angeklickt“ ändert ein „ PropertyChanges “-Objekt die Farbe des Rechtecks in Rot. Ein Klick innerhalb des „ MouseArea “ wechselt den Zustand des Rechtecks zwischen dem Standardzustand und dem Zustand „angeklickt“ und wechselt somit die Farbe des Rechtecks zwischen Schwarz und Rot.

import QtQuick

Rectangle {
    id: myRect
    width: 100; height: 100
    color: "black"

    MouseArea {
        id: mouseArea
        anchors.fill: parent
        onClicked: myRect.state == 'clicked' ? myRect.state = "" : myRect.state = 'clicked';
    }

    states: [
        State {
            name: "clicked"
            PropertyChanges { target: myRect; color: "red" }
        }
    ]
}

Beachten Sie, dass der Standardzustand durch eine leere Zeichenkette („“) bezeichnet wird.

Zustände werden häufig in Verbindung mit Übergängen verwendet, um Animationen bei Zustandsänderungen zu erzeugen.

Hinweis: Es ist nicht zulässig, den Zustand eines Objekts aus einem anderen Zustand desselben Objekts herausfestzulegen .

Siehe auch das Beispiel „Zustände“, „Qt Quick -Zustände“, „Übergänge“ und Qt Qml.

Dokumentation zu Eigenschaften

changes : list<Change> [default read-only]

Diese Eigenschaft enthält die Änderungen, die für diesen Zustand angewendet werden sollen

Standardmäßig werden diese Änderungen auf den Standardzustand angewendet. Wenn der Zustand einen anderen Zustand erweitert, werden die Änderungen auf den erweiterten Zustand angewendet.

extend : string

Diese Eigenschaft enthält den Zustand, den dieser Zustand erweitert.

Wenn ein Zustand einen anderen Zustand erweitert, erbt er alle Änderungen dieses Zustands.

Der erweiterte Zustand wird hinsichtlich der vom erweiternden Zustand festgelegten Änderungen als Basiszustand behandelt.

name : string

Diese Eigenschaft enthält den Namen des Bundeslandes.

Jeder Zustand sollte innerhalb seines Elements einen eindeutigen Namen haben.

when : bool

Diese Eigenschaft gilt, wenn der Zustand angewendet werden soll.

Diese sollte auf einen Ausdruck gesetzt werden, der zu „ true “ auswertet, wenn der Zustand angewendet werden soll. Beispielsweise wechselt der folgende „ Rectangle “ in den Zustand „hidden“ und wieder heraus, wenn die Taste „ MouseArea “ gedrückt wird:

Rectangle {
    id: myRect
    width: 100; height: 100
    color: "red"

    MouseArea { id: mouseArea; anchors.fill: parent }

    states: State {
        name: "hidden"; when: mouseArea.pressed
        PropertyChanges { target: myRect; opacity: 0 }
    }
}

Wenn mehrere Zustände in einer Gruppe „ when “-Klauseln enthalten, die gleichzeitig zu „ true “ auswerten, wird der erste passende Zustand angewendet. Im folgenden Codeausschnitt wird beispielsweise immer „ state1 “ anstelle von „ state2 “ ausgewählt, sobald „sharedCondition“ den Wert „ true “ annimmt.

Item {
    states: [
        State { name: "state1"; when: sharedCondition },
        State { name: "state2"; when: sharedCondition }
    ]
    // ...
}

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