Класс QHistoryState
Класс QHistoryState предоставляет способ возврата к ранее активному подсостоянию. Подробнее...
| Заголовок: | #include <QHistoryState> |
| CMake: | find_package(Qt6 COMPONENTS StateMachine REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::StateMachine) |
| qmake: | QT += statemachine |
| Наследует: | QAbstractState |
Типы public
| перечисление | HistoryType { ShallowHistory, DeepHistory } |
Свойства
- defaultState : QAbstractState*
- defaultTransition : QAbstractTransition*
- historyType : HistoryType
Функции public
| 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() | [см. примечание ниже] |
Примечание: Это частный сигнал. Его можно использовать в соединениях сигналов, но пользователь его не может излучать.
defaultTransition : QAbstractTransition*
Это свойство содержит переход по умолчанию для этого состояния истории
Функции доступа:
| QAbstractTransition * | defaultTransition() const |
| void | setDefaultTransition(QAbstractTransition *transition) |
Сигнал уведомления:
| void | defaultTransitionChanged() | [см. примечание ниже] |
Примечание: Это частный сигнал. Его можно использовать в соединениях сигналов, но пользователь его не может излучать.
historyType : HistoryType
Это свойство содержит тип истории, которую записывает это состояние истории
Значение по умолчанию для этого свойства — QHistoryState::ShallowHistory.
Функции доступа:
| QHistoryState::HistoryType | historyType() const |
| void | setHistoryType(QHistoryState::HistoryType type) |
Сигнал уведомления:
| void | historyTypeChanged() | [см. примечание ниже] |
Примечание: Это частный сигнал. Его можно использовать в соединениях сигналов, но пользователь его не может излучать.
Документация функций членов
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)
Устанавливает тип истории, который записывает это состояние истории.
Примечание: Функция-установитель для свойства historyType.
См. также historyType().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.1/qhistorystate.html