State QML Type

Definiert Konfigurationen von Objekten und Eigenschaften. Mehr...

Import Statement: import QtQuick

Eigenschaften

Ausführliche Beschreibung

Ein Zustand ist ein Satz von stapelweisen Änderungen der Standardkonfiguration.

Alle Elemente haben einen Standardstatus, der die Standardkonfiguration von Objekten und Eigenschaftswerten definiert. Neue Zustände können durch Hinzufügen von Status-Elementen zur Eigenschaft states definiert werden, damit Elemente zwischen verschiedenen Konfigurationen wechseln können. Diese Konfigurationen können zum Beispiel dazu verwendet werden, verschiedene Sätze von Eigenschaftswerten anzuwenden oder verschiedene Skripte auszuführen.

Im folgenden Beispiel wird ein einzelnes Rectangle angezeigt. Im Standardzustand ist das Rechteck schwarz gefärbt. Im "angeklickten" Zustand ändert ein PropertyChanges Objekt die Farbe des Rechtecks auf rot. Wenn Sie auf MouseArea klicken, wechselt der Zustand des Rechtecks zwischen dem Standardzustand und dem "angeklickten" Zustand, wodurch die Farbe des Rechtecks zwischen Schwarz und Rot wechselt.

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 mit einer leeren Zeichenfolge ("") angegeben wird.

Zustände werden in der Regel zusammen mit Übergängen verwendet, um Animationen bei Zustandsänderungen zu erzeugen.

Hinweis: Das Setzen des Zustands eines Objekts aus einem anderen Zustand desselben Objekts heraus ist nicht zulässig.

Siehe auch Beispiel für Zustände, Qt Quick Zustände, Übergänge, und Qt Qml.

Eigenschaft Dokumentation

changes : list<Change> [default]

Diese Eigenschaft enthält die Änderungen, die für diesen Zustand gelten 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 Zustand, der erweitert wird, wird in Bezug auf die vom erweiternden Zustand angegebenen Änderungen als Basiszustand behandelt.


name : string

Diese Eigenschaft enthält den Namen des Zustands.

Jeder Zustand sollte innerhalb seines Elements einen eindeutigen Namen haben.


when : bool

Diese Eigenschaft gibt an, wann der Zustand angewendet werden soll.

Sie sollte auf einen Ausdruck gesetzt werden, der den Wert true ergibt, wenn der Status angewendet werden soll. Zum Beispiel wechselt die folgende Rectangle in den und aus dem "verborgenen" Zustand, wenn die 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 haben, die gleichzeitig zu true ausgewertet werden, wird der erste übereinstimmende Zustand angewendet. Im folgenden Ausschnitt wird beispielsweise immer state1 und nicht state2 ausgewählt, wenn sharedCondition zu true wird.

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

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