Класс QHistoryState
Класс QHistoryState предоставляет средство возврата к ранее активному подсостоянию. Подробнее...
| Заголовок: | #include <QHistoryState> |
| CMake: | find_package(Qt6 COMPONENTS StateMachine REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::StateMachine) |
| qmake: | QT += statemachine |
| Наследует: | QAbstractState |
Типы публичного доступа
| перечисление | HistoryType { ShallowHistory, DeepHistory } |
Свойства
- defaultState : QAbstractState*
- defaultTransition : QAbstractTransition*
- historyType : HistoryType
Публичные функции
| QHistoryState(QHistoryState::HistoryType type, QState *parent = nullptr) | |
| QHistoryState(QState *parent = nullptr) | |
| virtual | ~QHistoryState() |
| QAbstractState * | defaultState() const |
| QAbstractTransition * | defaultTransition() const |
| QHistoryState::HistoryType | historyType() const |
| void | setDefaultState(QAbstractState *state) |
| void | setDefaultTransition(QAbstractTransition *transition) |
| void | setHistoryType(QHistoryState::HistoryType type) |
Сигналы
| void | defaultStateChanged() |
| void | defaultTransitionChanged() |
| void | historyTypeChanged() |
Переопределенные защищенные функции
| virtual bool | event(QEvent *e) override |
| virtual void | onEntry(QEvent *event) override |
| virtual void | onExit(QEvent *event) override |
Подробное описание
Состояние истории — это псевдосостояние, которое представляет дочернее состояние, в котором находилось родительское состояние в последний раз, когда родительское состояние выходило. Переход с состоянием истории в качестве целевого, фактически, является переходом в одно или несколько других дочерних состояний родительского состояния. QHistoryState является частью Фреймворка Qt State Machine.
Используйте функцию setDefaultState(), чтобы установить состояние, которое должно быть введено, если родительское состояние еще не было введено. Пример:
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);
Если необходимо ввести более одного состояния по умолчанию или если необходимо выполнить переход в состояние по умолчанию, следует установить defaultTransition. Обратите внимание, что метод eventTest() этого перехода никогда не будет вызываться: выбор и выполнение перехода выполняются автоматически при входе в состояние истории.
По умолчанию состояние истории является поверхностным, то есть оно не запоминает вложенные состояния. Это можно настроить с помощью свойства historyType.
Документация по типу членов
перечисление QHistoryState::HistoryType
Это перечисление определяет тип истории, который записывает QHistoryState.
| Постоянная | Значение | Описание |
|---|---|---|
QHistoryState::ShallowHistory |
0 |
Записываются только непосредственные дочерние состояния родительского состояния. В этом случае переход с состоянием истории в качестве цели приведет к непосредственному дочернему состоянию, в котором родитель находился в последний раз при выходе из него. Это значение по умолчанию. |
QHistoryState::DeepHistory |
1 |
Записываются вложенные состояния. В этом случае переход с состоянием истории в качестве цели приведет к наиболее глубоко вложенному дочернему состоянию, в котором родитель находился в последний раз при выходе из него. |
Документация свойств
defaultState : QAbstractState*
Это свойство содержит состояние по умолчанию этого состояния истории
Функции доступа:
| QAbstractState * | defaultState() const |
| void | setDefaultState(QAbstractState *state) |
Сигнал уведомления:
| void | defaultStateChanged() | [см. примечание ниже] |
Примечание: Это частный сигнал. Его можно использовать в соединениях сигналов, но он не может быть испущен пользователем.
[bindable] defaultTransition : QAbstractTransition*
Примечание: Это свойство поддерживает привязки QProperty.
Это свойство содержит переход по умолчанию для этого состояния истории
[bindable] historyType : HistoryType
Примечание: Это свойство поддерживает привязки QProperty.
Это свойство содержит тип истории, который регистрируется этим состоянием истории
Значение по умолчанию для этого свойства — QHistoryState::ShallowHistory.
Документация по функциям-членам
QHistoryState::QHistoryState(QHistoryState::HistoryType type, QState *parent = nullptr)
Создает новое состояние истории указанного type с указанным родительским состоянием parent.
QHistoryState::QHistoryState(QState *parent = nullptr)
Создает новое поверхностное состояние истории с указанным родительским состоянием parent.
[private signal, since 5.4] void QHistoryState::defaultStateChanged()
Этот сигнал испускается при изменении свойства defaultState.
Примечание: Это частный сигнал. Его можно использовать в соединениях сигналов, но он не может быть испущен пользователем.
Примечание: Сигнал уведомления для свойства defaultState.
Эта функция была добавлена в Qt 5.4.
См. также QHistoryState::defaultState.
[private signal, since 5.6] void QHistoryState::defaultTransitionChanged()
Этот сигнал испускается при изменении свойства defaultTransition.
Примечание: Это частный сигнал. Его можно использовать в соединениях сигналов, но он не может быть испущен пользователем.
Примечание: Сигнал уведомления для свойства defaultTransition.
Эта функция была добавлена в Qt 5.6.
См. также QHistoryState::defaultTransition.
[private signal, since 5.4] void QHistoryState::historyTypeChanged()
Этот сигнал испускается при изменении свойства historyType.
Примечание: Это частный сигнал. Его можно использовать в соединениях сигналов, но он не может быть испущен пользователем.
Примечание: Сигнал уведомления для свойства historyType.
Эта функция была добавлена в Qt 5.4.
См. также QHistoryState::historyType.
[virtual] QHistoryState::~QHistoryState()
Уничтожает это состояние истории.
QAbstractState *QHistoryState::defaultState() const
Возвращает состояние по умолчанию для этого состояния истории. Состояние по умолчанию указывает на состояние, в которое следует перейти, если родительское состояние никогда не входило ранее.
Примечание: Функция-геттер для свойства defaultState.
См. также setDefaultState().
[since 5.6] QAbstractTransition *QHistoryState::defaultTransition() const
Возвращает переход по умолчанию для этого состояния истории. Переход по умолчанию используется, когда состояние истории никогда не входило ранее. Поэтому целевые состояния перехода по умолчанию составляют состояние по умолчанию.
Примечание: Функция-геттер для свойства defaultTransition.
Эта функция была добавлена в Qt 5.6.
См. также setDefaultTransition().
[override virtual protected] bool QHistoryState::event(QEvent *e)
Переопределяет: QAbstractState::event(QEvent *e).
QHistoryState::HistoryType QHistoryState::historyType() const
Возвращает тип истории, который регистрирует это состояние истории.
Примечание: Функция-геттер для свойства historyType.
См. также setHistoryType().
[override virtual protected] void QHistoryState::onEntry(QEvent *event)
Переопределяет: QAbstractState::onEntry(QEvent *event).
[override virtual protected] void QHistoryState::onExit(QEvent *event)
Переопределяет: QAbstractState::onExit(QEvent *event).
void QHistoryState::setDefaultState(QAbstractState *state)
Устанавливает состояние по умолчанию для этого состояния истории в заданное state. state должен быть братом этого состояния истории.
Обратите внимание, что эта функция не устанавливает state в качестве начального состояния его родителя.
Примечание: Функция-сеттер для свойства defaultState.
См. также defaultState().
[since 5.6] void QHistoryState::setDefaultTransition(QAbstractTransition *transition)
Устанавливает переход по умолчанию для этого состояния истории в заданный transition. Это установит исходное состояние transition в состояние истории.
Обратите внимание, что метод eventTest transition никогда не будет вызван.
Примечание: Функция-сеттер для свойства defaultTransition.
Эта функция была добавлена в Qt 5.6.
См. также defaultTransition().
void QHistoryState::setHistoryType(QHistoryState::HistoryType type)
Устанавливает type истории, которую регистрирует это состояние истории.
Примечание: Функция-сеттер для свойства historyType.
См. также historyType().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qhistorystate.html