Sur cette page

State QML Type

Définit les configurations des objets et des propriétés. En savoir plus…

Import Statement: import QtQuick

Propriétés

Description détaillée

Un état est un ensemble de modifications groupées par rapport à la configuration par défaut.

Tous les éléments disposent d’un état par défaut qui définit la configuration par défaut des objets et des valeurs de propriété. De nouveaux états peuvent être définis en ajoutant des éléments « State » à la propriété « states », ce qui permet aux éléments de basculer entre différentes configurations. Ces configurations peuvent, par exemple, être utilisées pour appliquer différents ensembles de valeurs de propriété ou exécuter différents scripts.

L'exemple suivant présente un seul rectangle ( Rectangle). Dans l'état par défaut, le rectangle est de couleur noire. Dans l'état « cliqué », un objet PropertyChanges change la couleur du rectangle en rouge. Un clic à l'intérieur de l'MouseArea permet de basculer l'état du rectangle entre l'état par défaut et l'état « cliqué », faisant ainsi passer la couleur du rectangle du noir au 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 conjointement avec les transitions pour créer des animations lorsque des changements d’état se produisent.

Remarque : il n'est pas possiblede définir l'état d'un objet à partir d'un autre état de ce même objet.

Voir également l’exemple sur les é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 à cet état

Par défaut, ces modifications sont appliquées à l'état par défaut. Si l'état hérite d'un autre état, les modifications sont alors appliquées à l'état dont il hérite.

extend : string

Cette propriété contient l'état dont cet état est une extension.

Lorsqu'un état étend un autre état, il hérite de toutes les modifications apportées à cet état.

L'état qui est étendu est considéré comme l'état de base en ce qui concerne les modifications spécifiées par l'état qui l'étend.

name : string

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

Chaque état doit avoir un nom unique au sein de son élément.

when : bool

Cette propriété s'applique lorsque l'état doit être appliqué.

Elle doit être définie sur une expression dont le résultat est « true » lorsque vous souhaitez que l'état soit appliqué. Par exemple, l'Rectangle suivante passe à l'état « hidden » et en sort lorsque l'MouseArea est enfoncé :

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 comportent des clauses ` when ` dont l’évaluation donne ` true ` simultanément, c’est le premier état correspondant qui sera appliqué. Par exemple, dans l’extrait de code suivant, l’ state1 sera toujours sélectionné plutôt que state2 lorsque `sharedCondition` prend la valeur ` 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.