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
- defaultState : QAbstractState*
- defaultTransition : QAbstractTransition*
- historyType : HistoryType
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
| void | defaultStateChanged() |
| void | defaultTransitionChanged() |
| void | historyTypeChanged() |
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.
| Constante | Valor | Descripción |
|---|---|---|
QHistoryState::ShallowHistory | 0 | Só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::DeepHistory | 1 | Se 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.