Sur cette page

HistoryState QML Type

Le type HistoryState permet de revenir à un état précédemment actif. Plus d'informations...

Import Statement: import QtQml.StateMachine 6.11
Inherits:

QAbstractState

Propriétés

Description détaillée

Un état historique est un pseudo-état qui représente l'état enfant dans lequel se trouvait l'état parent la dernière fois qu'il a été quitté. Une transition ayant pour cible un état historique est en fait une transition vers l'un des autres états enfants de l'état parent. HistoryState fait partie de l'API QMLQt State Machine .

Utilisez la propriété defaultState pour définir l'état qui doit être saisi si l'état parent n'a jamais été saisi.

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 historique est superficiel, ce qui signifie qu'il ne se souvient pas des états imbriqués. Ceci peut être configuré par le biais de la propriété historyType.

Voir également StateMachine et State.

Documentation de la propriété

defaultState : QAbstractState

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

L'état par défaut indique l'état vers lequel il faut passer si l'état parent n'a jamais été saisi auparavant.

historyType : enumeration

Le type d'historique que cet état d'historique enregistre.

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

Cette énumération spécifie le type d'historique qu'un site HistoryState enregistre.

  • HistoryStateShallowHistory Seuls les états enfants immédiats de l'état parent sont enregistrés. Dans ce cas, une transition ayant pour cible l'état historique se retrouvera dans l'état enfant immédiat dans lequel se trouvait le parent la dernière fois qu'il a été quitté. Il s'agit de la valeur par défaut.
  • HistoryState.DeepHistory Les états imbriqués sont enregistrés. Dans ce cas, une transition ayant pour cible l'état historique aboutira à l'état descendant le plus profondément imbriqué dans lequel se trouvait le parent la dernière fois qu'il a été quitté.

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