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