Sur cette page

State QML Type

Définit les configurations des objets et des propriétés. Plus d'informations...

Import Statement: import QtQuick

Propriétés

Description détaillée

Un état est un ensemble de changements mis en lot à partir de la configuration par défaut.

Tous les éléments ont un état par défaut qui définit la configuration par défaut des objets et des valeurs des propriétés. De nouveaux états peuvent être définis en ajoutant des éléments State à la propriété states pour permettre aux éléments de passer d'une configuration à l'autre. Ces configurations peuvent, par exemple, être utilisées pour appliquer différents ensembles de valeurs de propriétés ou exécuter différents scripts.

L'exemple suivant affiche une seule page Rectangle. Dans l'état par défaut, le rectangle est coloré en noir. Dans l'état "cliqué", un objet PropertyChanges change la couleur du rectangle en rouge. En cliquant à l'intérieur de MouseArea, le rectangle passe de l'état par défaut à l'état "cliqué", ce qui fait basculer la couleur du rectangle entre le noir et le rouge.

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" }
        }
    ]
}

Notez que l'état par défaut est désigné par une chaîne vide ("").

Les états sont généralement utilisés avec les transitions pour créer des animations lorsque des changements d'état se produisent.

Remarque : il n'est pas possible de modifier l'état d'un objet à partir d'un autre état du même objet.

Voir également l 'exemple d'états, Qt Quick États, Transitions et Qt Qml.

Documentation sur les propriétés

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

Cette propriété contient les modifications à appliquer pour cet état

Par défaut, ces modifications sont appliquées à l'état par défaut. Si l'état étend un autre état, les modifications sont appliquées à l'état étendu.

extend : string

Cette propriété contient l'état que cet état étend.

Lorsqu'un état étend un autre état, il hérite de tous les changements de cet état.

L'état étendu est traité comme l'état de base en ce qui concerne les changements spécifiés par l'état étendu.

name : string

Cette propriété contient le nom de l'état.

Chaque état doit avoir un nom unique dans son élément.

when : bool

Cette propriété détermine le moment où l'état doit être appliqué.

Elle doit être définie par une expression qui vaut true lorsque vous souhaitez que l'état soit appliqué. Par exemple, la page Rectangle suivante passe à l'état "caché" et en sort lorsque l'on appuie sur la touche MouseArea:

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 }
    }
}

Si plusieurs états d'un groupe ont des clauses when qui évaluent true en même temps, le premier état correspondant sera appliqué. Par exemple, dans l'extrait suivant, state1 sera toujours sélectionné plutôt que state2 lorsque sharedCondition devient true.

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.