Класс QState
Класс QState предоставляет универсальное состояние для QStateMachine. Подробнее...
| Заголовок: | #include <QState> |
| qmake: | QT += core |
| С момента: | Qt 4.6 |
| Наследуется от: | QAbstractState |
| Наследует: |
Типы публичного доступа
| перечисление | ChildMode { ExclusiveStates, ParallelStates } |
| перечисление | RestorePolicy { DontRestoreProperties, RestoreProperties } |
Свойства
- childMode : ChildMode
- errorState : QAbstractState*
- initialState : QAbstractState*
- 1 свойство унаследовано от QAbstractState
- 1 свойство унаследовано от QObject
Функции публичного доступа
| QState(QState *parent = nullptr) | |
| QState(QState::ChildMode childMode, QState *parent = nullptr) | |
| virtual | ~QState() |
| void | addTransition(QAbstractTransition *transition) |
| QSignalTransition * | addTransition(const QObject *sender, const char *signal, QAbstractState *target) |
| QSignalTransition * | addTransition(const QObject *sender, PointerToMemberFunction signal, QAbstractState *target) |
| QAbstractTransition * | addTransition(QAbstractState *target) |
| void | assignProperty(QObject *object, const char *name, const QVariant &value) |
| QState::ChildMode | childMode() const |
| QAbstractState * | errorState() const |
| QAbstractState * | initialState() const |
| void | removeTransition(QAbstractTransition *transition) |
| void | setChildMode(QState::ChildMode mode) |
| void | setErrorState(QAbstractState *state) |
| void | setInitialState(QAbstractState *state) |
| QList<QAbstractTransition *> | transitions() const |
- 3 функции унаследованы от QAbstractState
- 32 функции унаследованы от QObject
Сигналы
| void | childModeChanged() |
| void | errorStateChanged() |
| void | finished() |
| void | initialStateChanged() |
| void | propertiesAssigned() |
- 3 сигнала унаследованы от QAbstractState
- 2 сигнала унаследованы от QObject
Переопределённые защищённые функции
| virtual bool | event(QEvent *e) override |
| virtual void | onEntry(QEvent *event) override |
| virtual void | onExit(QEvent *event) override |
- 3 защищённые функции унаследованы от QAbstractState
- 9 защищённых функций унаследованы от QObject
Дополнительные унаследованные члены
- 1 public slot унаследован от QObject
- 11 static public members унаследованы от QObject
- 3 protected functions inherited from QAbstractState
- 9 protected functions inherited from QObject
Подробное описание
Класс QState предоставляет универсальное состояние для QStateMachine.
Объекты QState могут иметь дочерние состояния и переходы в другие состояния. QState является частью Фреймворка управления состояниями.
Функция addTransition() добавляет переход. Функция removeTransition() удаляет переход. Функция transitions() возвращает исходящие переходы состояния.
Функция assignProperty() используется для определения назначений свойств, которые должны выполняться при входе в состояние.
Состояния верхнего уровня должны принимать объект QStateMachine в качестве родительского состояния или добавляться в машину состояний с помощью QStateMachine::addState().
Состояния с дочерними состояниями
Свойство childMode определяет, как обрабатываются дочерние состояния. Для групп состояний, не являющихся параллельными, необходимо вызвать функцию setInitialState() для установки начального состояния. Дочерние состояния — это взаимоисключающие состояния, и машина состояний должна знать, какое дочернее состояние войти, когда родительское состояние является целью перехода.
Состояние излучает сигнал QState::finished(), когда вводится конечное дочернее состояние (QFinalState).
Функция setErrorState() устанавливает состояние ошибки состояния. Состояние ошибки — это состояние, в которое машина состояний перейдёт, если при попытке входа в состояние будет обнаружена ошибка (например, потому, что начальное состояние не было установлено).
Документация по типу члена
перечисление QState::ChildMode
Это перечисление определяет, как обрабатываются дочерние состояния состояния.
| Константа | Значение | Описание |
|---|---|---|
QState::ExclusiveStates |
0 |
Дочерние состояния взаимно исключают друг друга, и начальное состояние должно быть установлено с помощью вызова QState::setInitialState(). |
QState::ParallelStates |
1 |
Дочерние состояния параллельны. При входе в родительское состояние все его дочерние состояния вводятся параллельно. |
перечисление QState::RestorePolicy
Это перечисление определяет тип политики восстановления. Политика восстановления применяется, когда машина вступает в состояние, которое устанавливает одно или несколько свойств. Если политика восстановления установлена в RestoreProperties, машина состояний сохранит исходное значение свойства перед установкой нового значения.
Позже, когда машина входит в состояние, которое не устанавливает значение для данного свойства, свойство автоматически восстановится до своего начального значения.
Только одно начальное значение будет сохранено для каждого заданного свойства. Если машина состояний уже сохранила значение свойства, оно не будет перезаписано, пока свойство не будет успешно восстановлено.
| Константа | Значение | Описание |
|---|---|---|
QState::DontRestoreProperties |
0 |
Машина состояний не должна сохранять начальные значения свойств и восстанавливать их позже. |
QState::RestoreProperties |
1 |
Машина состояний должна сохранять начальные значения свойств и восстанавливать их позже. |
См. также QStateMachine::globalRestorePolicy и QState::assignProperty().
Документация по свойствам
childMode : ChildMode
Это свойство содержит режим дочерних состояний для этого состояния.
Значение по умолчанию для этого свойства — QState::ExclusiveStates.
Функции доступа:
| QState::ChildMode | childMode() const |
| void | setChildMode(QState::ChildMode mode) |
Сигнал уведомления:
| void | childModeChanged() | [см. примечание ниже] |
Примечание: Это частный сигнал. Его можно использовать в соединениях сигналов, но пользователь его не может генерировать.
errorState : QAbstractState*
Это свойство содержит состояние ошибки для этого состояния.
Функции доступа:
| QAbstractState * | errorState() const |
| void | setErrorState(QAbstractState *state) |
Сигнал уведомления:
| void | errorStateChanged() | [см. примечание ниже] |
Примечание: Это частный сигнал. Его можно использовать в соединениях сигналов, но пользователь его не может генерировать.
initialState : QAbstractState*
Это свойство содержит начальное состояние для этого состояния (одно из его дочерних состояний).
Функции доступа:
| QAbstractState * | initialState() const |
| void | setInitialState(QAbstractState *state) |
Сигнал уведомления:
| void | initialStateChanged() | [см. примечание ниже] |
Примечание: Это частный сигнал. Его можно использовать в соединениях сигналов, но пользователь его не может генерировать.
Документация по функциям-членам
QState::QState(QState *parent = nullptr)
Создаёт новое состояние с заданным родительским состоянием parent.
QState::QState(QState::ChildMode childMode, QState *parent = nullptr)
Создаёт новое состояние с заданным режимом дочерних состояний childMode и заданным родительским состоянием parent.
[virtual] QState::~QState()
Уничтожает это состояние.
void QState::addTransition(QAbstractTransition *transition)
Добавляет заданный переход transition. Переход имеет это состояние в качестве источника. Это состояние принимает владение переходом.
QSignalTransition *QState::addTransition(const QObject *sender, const char *signal, QAbstractState *target)
Добавляет переход, связанный с заданным сигналом signal объекта sender, и возвращает новый объект QSignalTransition. Переход имеет это состояние в качестве источника и заданное target в качестве целевого состояния.
QSignalTransition *QState::addTransition(const QObject *sender, PointerToMemberFunction signal, QAbstractState *target)
Это перегруженная функция.
Добавляет переход, связанный с заданным сигналом signal объекта sender, и возвращает новый объект QSignalTransition. Переход имеет это состояние в качестве источника и заданное target в качестве целевого состояния.
Функция была добавлена в Qt 5.5.
QAbstractTransition *QState::addTransition(QAbstractState *target)
Добавляет безусловный переход из этого состояния в заданное target состояние и возвращает новый объект перехода.
void QState::assignProperty(QObject *object, const char *name, const QVariant &value)
Указывает этому состоянию установить свойство с заданным name заданного object в заданное value при входе в состояние.
См. также propertiesAssigned().
QState::ChildMode QState::childMode() const
Возвращает режим дочерних состояний для этого состояния.
Примечание: Функция-получатель для свойства childMode.
См. также setChildMode().
[signal] void QState::childModeChanged()
Этот сигнал излучается при изменении свойства childMode.
Функция была добавлена в Qt 5.4.
Примечание: Это частный сигнал. Его можно использовать в соединениях сигналов, но пользователь его не может генерировать.
Примечание: Сигнал уведомления для свойства childMode.
См. также QState::childMode.
QAbstractState *QState::errorState() const
Возвращает состояние ошибки этого состояния.
Примечание: Функция-получатель для свойства errorState.
См. также setErrorState() и QStateMachine::error().
[signal] void QState::errorStateChanged()
Этот сигнал излучается при изменении свойства errorState.
Функция была добавлена в Qt 5.4.
Примечание: Это частный сигнал. Его можно использовать в соединениях сигналов, но пользователь его не может генерировать.
Примечание: Сигнал уведомления для свойства errorState.
См. также QState::errorState.
[override virtual protected] bool QState::event(QEvent *e)
Переопределено из QAbstractState::event().
[signal] void QState::finished()
Этот сигнал излучается, когда вводится конечное дочернее состояние этого состояния.
Примечание: Это частный сигнал. Его можно использовать в соединениях сигналов, но пользователь его не может генерировать.
См. также QFinalState.
QAbstractState *QState::initialState() const
Возвращает начальное состояние этого состояния, или 0, если состояние не имеет начального состояния.
Примечание: Функция-получатель для свойства initialState.
См. также setInitialState().
[signal] void QState::initialStateChanged()
Этот сигнал излучается при изменении свойства initialState.
Функция была добавлена в Qt 5.4.
Примечание: Это частный сигнал. Его можно использовать в соединениях сигналов, но пользователь его не может генерировать.
Примечание: Сигнал уведомления для свойства initialState.
См. также QState::initialState.
[override virtual protected] void QState::onEntry(QEvent *event)
Переопределено из QAbstractState::onEntry().
[override virtual protected] void QState::onExit(QEvent *event)
Переопределено из QAbstractState::onExit().
[signal] void QState::propertiesAssigned()
Этот сигнал испускается, когда всем свойствам присвоено их окончательное значение. Если состояние присваивает значение одному или нескольким свойствам, для которых существует анимация (либо заданная на переходе, либо как стандартная анимация в машине состояний), то сигнал не будет испущен, пока все такие анимации не завершатся.
Если соответствующих анимаций нет или не определено никаких назначений свойств для состояния, то сигнал будет испущен непосредственно перед входом в состояние.
Примечание: Это частный сигнал. Его можно использовать в соединениях сигналов, но он не может быть испущен пользователем.
См. также QState::assignProperty() и QAbstractTransition::addAnimation().
void QState::removeTransition(QAbstractTransition *transition)
Удаляет заданный переход transition из этого состояния. Состояние высвобождает владение переходом.
См. также addTransition().
void QState::setChildMode(QState::ChildMode mode)
Устанавливает режим потомков mode для этого состояния.
Примечание: Функция-сеттер для свойства childMode.
См. также childMode().
void QState::setErrorState(QAbstractState *state)
Устанавливает состояние ошибки этого состояния в заданное состояние state. Если состояние ошибки не установлено или установлено в 0, состояние наследует состояние ошибки своего родителя рекурсивно. Если состояние ошибки не установлено ни для самого состояния, ни для любого из его предков, ошибка заставит машину прекратить выполнение и выведет сообщение об ошибке в консоль.
Примечание: Функция-сеттер для свойства errorState.
См. также errorState().
void QState::setInitialState(QAbstractState *state)
Устанавливает начальное состояние этого состояния в заданное состояние state. state должен быть потомком этого состояния.
Примечание: Функция-сеттер для свойства initialState.
См. также initialState().
QList<QAbstractTransition *> QState::transitions() const
Возвращает исходящие переходы этого состояния (т.е. переходы, где это состояние является исходным состоянием), или пустой список, если у этого состояния нет исходящих переходов.
Эта функция была введена в Qt 4.7.
См. также addTransition().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.11/qstate.html