En esta página

QHistoryState Class

La clase QHistoryState proporciona un medio para volver a un subestado previamente activo. Más...

Cabecera: #include <QHistoryState>
CMake: find_package(Qt6 REQUIRED COMPONENTS StateMachine)
target_link_libraries(mytarget PRIVATE Qt6::StateMachine)
qmake: QT += statemachine
Hereda: QAbstractState

Tipos públicos

enum HistoryType { ShallowHistory, DeepHistory }

Propiedades

Funciones públicas

QHistoryState(QState *parent = nullptr)
QHistoryState(QHistoryState::HistoryType type, QState *parent = nullptr)
virtual ~QHistoryState()
QBindable<QAbstractTransition *> bindableDefaultTransition()
QBindable<QHistoryState::HistoryType> bindableHistoryType()
QAbstractState *defaultState() const
QAbstractTransition *defaultTransition() const
QHistoryState::HistoryType historyType() const
void setDefaultState(QAbstractState *state)
void setDefaultTransition(QAbstractTransition *transition)
void setHistoryType(QHistoryState::HistoryType type)

Señales

Funciones protegidas reimplementadas

virtual bool event(QEvent *e) override
virtual void onEntry(QEvent *event) override
virtual void onExit(QEvent *event) override

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 o más estados hijos del estado padre. QHistoryState forma parte de Qt State Machine Framework.

Utilice la función setDefaultState() para establecer el estado en el que se debe entrar si nunca se ha entrado en el estado padre. Ejemplo:

QStateMachine machine;

QState *s1 = new QState();
QState *s11 = new QState(s1);
QState *s12 = new QState(s1);

QHistoryState *s1h = new QHistoryState(s1);
s1h->setDefaultState(s11);

machine.addState(s1);

QState *s2 = new QState();
machine.addState(s2);

QPushButton *button = new QPushButton();
// Clicking the button will cause the state machine to enter the child state
// that s1 was in the last time s1 was exited, or the history state's default
// state if s1 has never been entered.
s1->addTransition(button, SIGNAL(clicked()), s1h);

Si más de un estado predeterminado tiene que ser introducido, o si la transición al estado predeterminado (s) tiene que ser actuado, el defaultTransition debe establecerse en su lugar. Nótese que nunca se llamará al método eventTest() de esa transición: la selección y ejecución de la transición se realiza automáticamente al entrar en el estado historia.

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

Documentación de tipos de miembros

enum QHistoryState::HistoryType

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

ConstanteValorDescripción
QHistoryState::ShallowHistory0Sólo se registran los estados hijos inmediatos del estado padre. En este caso, una transición cuyo objetivo sea el estado histórico acabará 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 por defecto.
QHistoryState::DeepHistory1Se registran los estados anidados. En este caso, una transición que tenga como destino el estado histórico terminará en el estado descendiente más profundo en el que se encontraba el estado padre la última vez que se salió de él.

Documentación de Propiedades

defaultState : QAbstractState*

Esta propiedad contiene el estado por defecto de este estado de la historia

Funciones de acceso:

QAbstractState *defaultState() const
void setDefaultState(QAbstractState *state)

Señal de notificador:

void defaultStateChanged()[see note below]

Nota: Esta es una señal privada. Puede ser utilizada en conexiones de señal pero no puede ser emitida por el usuario.

[bindable] defaultTransition : QAbstractTransition*

Nota: Esta propiedad soporta enlaces QProperty.

Esta propiedad contiene la transición por defecto de este estado de la historia

Funciones de acceso:

QAbstractTransition *defaultTransition() const
void setDefaultTransition(QAbstractTransition *transition)

Señal de notificador:

void defaultTransitionChanged()[see note below]

Nota: Esta es una señal privada. Puede ser utilizada en conexiones de señal pero no puede ser emitida por el usuario.

[bindable] historyType : HistoryType

Nota: Esta propiedad admite enlaces QProperty.

Esta propiedad contiene el tipo de historia que registra este estado de historia

El valor por defecto de esta propiedad es QHistoryState::ShallowHistory.

Funciones de acceso:

QHistoryState::HistoryType historyType() const
void setHistoryType(QHistoryState::HistoryType type)

Señal de notificador:

void historyTypeChanged()[see note below]

Nota: Se trata de una señal privada. Puede ser utilizada en conexiones de señal pero no puede ser emitida por el usuario.

Documentación de las funciones miembro

QHistoryState::QHistoryState(QState *parent = nullptr)

Construye un nuevo estado histórico superficial con el estado parent dado.

QHistoryState::QHistoryState(QHistoryState::HistoryType type, QState *parent = nullptr)

Construye un nuevo estado histórico del type dado, con el estado parent dado.

[virtual noexcept] QHistoryState::~QHistoryState()

Destruye este estado de la historia.

QAbstractState *QHistoryState::defaultState() const

Devuelve el estado por defecto de este estado histórico. El estado por defecto indica el estado al que se debe pasar si nunca se ha entrado en el estado padre.

Nota: Función Getter para la propiedad defaultState.

Véase también setDefaultState().

[private signal] void QHistoryState::defaultStateChanged()

Esta señal se emite cuando se modifica la propiedad defaultState.

Nota: Se trata de una señal privada. Puede ser utilizada en conexiones de señales pero no puede ser emitida por el usuario.

Nota: Señal notificadora para la propiedad defaultState.

Véase también QHistoryState::defaultState.

QAbstractTransition *QHistoryState::defaultTransition() const

Devuelve la transición por defecto de este estado histórico. La transición por defecto se toma cuando nunca antes se ha entrado en el estado histórico. Los estados destino de la transición por defecto constituyen por tanto el estado por defecto.

Nota: Función Getter para la propiedad defaultTransition.

Véase también setDefaultTransition().

[private signal] void QHistoryState::defaultTransitionChanged()

Esta señal se emite cuando se modifica la propiedad defaultTransition.

Nota: Se trata de una señal privada. Puede ser utilizada en conexiones de señales pero no puede ser emitida por el usuario.

Nota: Señal notificadora para la propiedad defaultTransition.

Véase también QHistoryState::defaultTransition.

[override virtual protected] bool QHistoryState::event(QEvent *e)

Reimplementa: QAbstractState::event(QEvent *e).

QHistoryState::HistoryType QHistoryState::historyType() const

Devuelve el tipo de historia que registra este estado de historia.

Nota: Función Getter para la propiedad historyType.

Véase también setHistoryType().

[private signal] void QHistoryState::historyTypeChanged()

Esta señal se emite cuando se modifica la propiedad historyType.

Nota: Se trata de una señal privada. Puede ser utilizada en conexiones de señales pero no puede ser emitida por el usuario.

Nota: Señal notificadora para la propiedad historyType.

Véase también QHistoryState::historyType.

[override virtual protected] void QHistoryState::onEntry(QEvent *event)

Reimplementa: QAbstractState::onEntry(QEvent *event).

[override virtual protected] void QHistoryState::onExit(QEvent *event)

Reimplementa: QAbstractState::onExit(QEvent *event).

void QHistoryState::setDefaultState(QAbstractState *state)

Establece el estado por defecto de este estado histórico como state. state debe ser un hermano de este estado histórico.

Tenga en cuenta que esta función no establece state como el estado inicial de su padre.

Nota: Función Setter para la propiedad defaultState.

Véase también defaultState().

void QHistoryState::setDefaultTransition(QAbstractTransition *transition)

Establece la transición predeterminada de este estado histórico para que sea el transition dado. Esto establecerá el estado fuente del transition al estado de historia.

Tenga en cuenta que el método eventTest del transition nunca será llamado.

Nota: Función Setter para la propiedad defaultTransition.

Véase también defaultTransition().

void QHistoryState::setHistoryType(QHistoryState::HistoryType type)

Establece el type de historia que registra este estado de historia.

Nota: Función setter para la propiedad historyType.

Véase también historyType().

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