Sur cette page

HistoryState QML Type

Le type HistoryState permet de revenir à un sous-état précédemment actif. En savoir plus…

Import Statement: import QtQml.StateMachine 6.12
Inherits:

QAbstractState

Propriétés

Description détaillée

Un état d'historique est un pseudo-état qui représente l'état enfant dans lequel se trouvait l'état parent lors de sa dernière sortie. Une transition dont la cible est un état d'historique est en réalité une transition vers l'un des autres états enfants de l'état parent. HistoryState fait partie de l'API QML d'Qt State Machine .

Utilisez la propriété defaultState pour définir l’état dans lequel il faut entrer si l’état parent n’a jamais été activé.

Exemple d’utilisation

import QtQuick
import QtQml.StateMachine as DSM

Rectangle {
    Button {
        anchors.fill: parent
        id: button
        text: "Press me"
        DSM.StateMachine {
            id: stateMachine
            initialState: parentState
            running: true
            DSM.State {
                id: parentState
                initialState: child2
                onEntered: console.log("parentState entered")
                onExited: console.log("parentState exited")
                DSM.State {
                    id: child1
                    onEntered: console.log("child1 entered")
                    onExited: console.log("child1 exited")
                }
                DSM.State {
                    id: child2
                    onEntered: console.log("child2 entered")
                    onExited: console.log("child2 exited")
                }
                DSM.HistoryState {
                    id: historyState
                    defaultState: child1
                }
                DSM.SignalTransition {
                    targetState: historyState

                    // Clicking the button will cause the state machine to enter the child state
                    // that parentState was in the last time parentState was exited, or the history state's default
                    // state if parentState has never been entered.
                    signal: button.clicked
                }
            }
        }
    }
}

Par défaut, un état d’historique est « peu profond », ce qui signifie qu’il ne mémorise pas les états imbriqués. Ce comportement peut être configuré via la propriété ` historyType `.

Voir également StateMachine et State.

Documentation sur les propriétés

defaultState : QAbstractState

L'état par défaut de cet état d'historique.

L'état par défaut indique l'état vers lequel la transition doit s'effectuer si l'état parent n'a jamais été atteint auparavant.

historyType : enumeration

Le type d'historique enregistré par cet état d'historique.

La valeur par défaut de cette propriété est HistoryState.ShallowHistory.

Cette énumération spécifie le type d'historique enregistré par un HistoryState.

  • HistoryState.ShallowHistory Seuls les états enfants immédiats de l’état parent sont enregistrés. Dans ce cas, une transition dont l’état d’historique est la cible aboutira à l’état enfant immédiat dans lequel se trouvait le parent lors de sa dernière sortie. Il s’agit de la valeur par défaut.
  • HistoryState.DeepHistory Les états imbriqués sont enregistrés. Dans ce cas, une transition dont la cible est l’état d’historique aboutira à l’état descendant le plus profondément imbriqué dans lequel se trouvait l’état parent lors de sa dernière sortie.

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