Класс 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.
Эта функция была добавлена в 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.13/qhistorystate.html