Класс QHistoryState
Класс QHistoryState предоставляет способ возврата к ранее активному подсостоянию. Подробнее...
| Заголовок: | #include <QHistoryState> |
| qmake: | QT += core |
| С момента: | Qt 4.6 |
| Наследует: | QAbstractState |
Этот класс был представлен в Qt 4.6.
Типы публичного доступа
| перечисление | 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 входит в состав Фреймворк управляющей машины состояний.
Используйте функцию 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.
[signal] void QHistoryState::defaultStateChanged()
Этот сигнал испускается при изменении свойства defaultState.
Примечание: Это частный сигнал. Он может использоваться в соединениях сигналов, но не может испускаться пользователем.
Примечание: Сигнал-нотификатор для свойства defaultState.
Эта функция была введена в Qt 5.4.
См. также QHistoryState::defaultState.
[signal] void QHistoryState::defaultTransitionChanged()
Этот сигнал испускается при изменении свойства defaultTransition.
Примечание: Это частный сигнал. Он может использоваться в соединениях сигналов, но не может испускаться пользователем.
Примечание: Сигнал-нотификатор для свойства defaultTransition.
Эта функция была введена в Qt 5.6.
См. также QHistoryState::defaultTransition.
[signal] void QHistoryState::historyTypeChanged()
Этот сигнал испускается при изменении свойства historyType.
Примечание: Это частный сигнал. Он может использоваться в соединениях сигналов, но не может испускаться пользователем.
Примечание: Сигнал-нотификатор для свойства historyType.
Эта функция была введена в Qt 5.4.
См. также QHistoryState::historyType.
[virtual] QHistoryState::~QHistoryState()
Уничтожает это состояние истории.
QAbstractState *QHistoryState::defaultState() const
Возвращает состояние по умолчанию для этого состояния истории. Состояние по умолчанию указывает состояние, в которое следует перейти, если родительское состояние никогда ранее не входило.
Примечание: Функция-получатель для свойства defaultState.
См. также setDefaultState().
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().
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-5.15/qhistorystate.html