En esta página

HistoryState QML Type

El tipo HistoryState proporciona un medio para volver a un subestado previamente activo. Más...

Import Statement: import QtQml.StateMachine 6.11
Inherits:

QAbstractState

Propiedades

Descripción detallada

Un estado histórico es un pseudoestado que representa el estado hijo en el que se encontraba el estado padre la última vez que se salió del estado padre. Una transición con un estado histórico como destino es, de hecho, una transición a uno de los otros estados hijos del estado padre. HistoryState forma parte de Qt State Machine QML API.

Utilice la propiedad defaultState para establecer el estado en el que se debe entrar si nunca se ha entrado en el estado padre.

Ejemplo de uso

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

Por defecto, un estado de historial es superficial, lo que significa que no recordará estados anidados. Esto puede configurarse a través de la propiedad historyType.

Ver también StateMachine y State.

Documentación de la propiedad

defaultState : QAbstractState

El estado por defecto de este estado histórico.

El estado predeterminado indica el estado al que se debe pasar si nunca antes se ha entrado en el estado padre.

historyType : enumeration

El tipo de historia que registra este estado de historia.

El valor por defecto de esta propiedad es HistoryState.ShallowHistory.

Este enum especifica el tipo de historial que registra un HistoryState.

  • HistoryState.ShallowHistory Sólo se registran los estados hijos inmediatos del estado padre. En este caso, una transición con el estado historia como objetivo terminará en el estado hijo inmediato en el que se encontraba el estado padre la última vez que se salió de él. Este es el valor predeterminado.
  • HistoryState.DeepHistory Se registran los estados anidados. En este caso, una transición con el estado histórico como objetivo terminará en el estado descendiente más profundo en el que se encontraba el estado padre la última vez que se salió de él.

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