Класс QAbstractTransition
Класс QAbstractTransition является базовым классом переходов между объектами QAbstractState. Подробнее...
| Заголовок: | #include <QAbstractTransition> |
| CMake: | find_package(Qt6 COMPONENTS StateMachine REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::StateMachine) |
| qmake: | QT += statemachine |
| Наследует: | QObject |
| Наследуется: |
Типы публичного доступа
| перечисление | TransitionType { ExternalTransition, InternalTransition } |
Свойства
- sourceState : QState* const
- targetState : QAbstractState*
- targetStates : QList<QAbstractState*>
- transitionType : TransitionType
Функции публичного доступа
| QAbstractTransition(QState *sourceState = nullptr) | |
| virtual | ~QAbstractTransition() |
| void | addAnimation(QAbstractAnimation *animation) |
| QList<QAbstractAnimation *> | animations() const |
| QStateMachine * | machine() const |
| void | removeAnimation(QAbstractAnimation *animation) |
| void | setTargetState(QAbstractState *target) |
| void | setTargetStates(const QList<QAbstractState *> &targets) |
| void | setTransitionType(QAbstractTransition::TransitionType type) |
| QState * | sourceState() const |
| QAbstractState * | targetState() const |
| QList<QAbstractState *> | targetStates() const |
| QAbstractTransition::TransitionType | transitionType() const |
Сигналы
| void | targetStateChanged() |
| void | targetStatesChanged() |
| void | triggered() |
Защищённые функции
| virtual bool | eventTest(QEvent *event) = 0 |
| virtual void | onTransition(QEvent *event) = 0 |
Переопределённые защищённые функции
| virtual bool | event(QEvent *e) override |
Подробное описание
Класс QAbstractTransition является абстрактным базовым классом переходов между состояниями (QAbstractState) в QStateMachine. QAbstractTransition входит в состав Qt State Machine Framework.
Функция sourceState() возвращает источник перехода. Функция targetStates() возвращает цели перехода. Функция machine() возвращает машину состояний, частью которой является переход.
Сигнал triggered() подаётся, когда переход был вызван.
Переходы могут вызывать воспроизведение анимаций. Используйте функцию addAnimation(), чтобы добавить анимацию к переходу.
Наследование
Функция eventTest() вызывается машиной состояний, чтобы определить, должен ли вызывать переход событие. При переопределении этой функции обычно проверяется тип события и производится приведение события к нужному типу, а также проверяются одно или несколько свойств события, чтобы удовлетворить вашим критериям.
Функция onTransition() вызывается, когда переход запущен; переопределите эту функцию, чтобы выполнить пользовательскую обработку перехода.
Документация по типам членов
перечисление QAbstractTransition::TransitionType
Это перечисление указывает тип перехода. По умолчанию тип — внешний переход.
| Константа | Значение | Описание |
|---|---|---|
QAbstractTransition::ExternalTransition |
0 |
Любое состояние, являющееся исходным состоянием перехода (которое не является переходом без цели), оставляется и повторно вводится при необходимости. |
QAbstractTransition::InternalTransition |
1 |
Если целевое состояние перехода является подсостоянием составного состояния, а это составное состояние является исходным состоянием, внутренний переход не выведет исходное состояние. |
См. такжеQAbstractTransition::transitionType.
Документация свойств
[read-only] sourceState : QState* const
Это свойство содержит исходное состояние (родителя) этого перехода.
Функции доступа:
| QState * | sourceState() const |
targetState : QAbstractState*
Это свойство содержит целевое состояние этого перехода.
Если у перехода нет целевого состояния, переход всё равно может быть вызван, но это не приведёт к изменению конфигурации машины состояний (т.е. текущее состояние не будет покинуто и повторно введено).
Функции доступа:
| QAbstractState * | targetState() const |
| void | setTargetState(QAbstractState *target) |
Сигнал уведомления:
| void | targetStateChanged() | [см. примечание ниже] |
Примечание: Это частный сигнал. Он может быть использован в соединениях сигналов, но не может быть выпущен пользователем.
targetStates : QList<QAbstractState*>
Это свойство содержит целевые состояния этого перехода.
Если указано несколько состояний, все они должны быть потомками одного и того же состояния параллельной группы.
Функции доступа:
| QList<QAbstractState *> | targetStates() const |
| void | setTargetStates(const QList<QAbstractState *> &targets) |
Сигнал уведомления:
| void | targetStatesChanged() | [см. примечание ниже] |
Примечание: Это частный сигнал. Он может быть использован в соединениях сигналов, но не может быть выпущен пользователем.
transitionType : TransitionType
Указывает, является ли этот переход внутренним или внешним.
Внутренние и внешние переходы ведут себя одинаково, за исключением случая, когда исходное состояние перехода является составным состоянием, а целевое(ые) состояние(я) являются потомками исходного состояния. В таком случае внутренний переход не выйдет и не войдёт в своё исходное состояние, в то время как внешний переход это сделает.
По умолчанию тип является внешним переходом.
Функции доступа:
| QAbstractTransition::TransitionType | transitionType() const |
| void | setTransitionType(QAbstractTransition::TransitionType type) |
Документация функций-членов
QAbstractTransition::QAbstractTransition(QState *sourceState = nullptr)
Создаёт новый объект QAbstractTransition с заданным sourceState.
[private signal, since 5.4] void QAbstractTransition::targetStateChanged()
Этот сигнал испускается при изменении свойства targetState.
Примечание: Это частный сигнал. Он может быть использован в соединениях сигналов, но не может быть выпущен пользователем.
Примечание: Сигнал уведомления для свойства targetState.
Эта функция была введена в Qt 5.4.
См. также QAbstractTransition::targetState.
[private signal, since 5.4] void QAbstractTransition::targetStatesChanged()
Этот сигнал испускается при изменении свойства targetStates.
Примечание: Это частный сигнал. Он может быть использован в соединениях сигналов, но не может быть выпущен пользователем.
Примечание: Сигнал уведомления для свойства targetStates.
Эта функция была введена в Qt 5.4.
См. также QAbstractTransition::targetStates.
[private signal] void QAbstractTransition::triggered()
Этот сигнал испускается, когда переход был вызван (после вызова onTransition() ).
Примечание: Это частный сигнал. Он может быть использован в соединениях сигналов, но не может быть выпущен пользователем.
[virtual] QAbstractTransition::~QAbstractTransition()
Удаляет этот переход.
void QAbstractTransition::addAnimation(QAbstractAnimation *animation)
Добавляет заданную animation к этому переходу. Переход не принимает владение анимацией.
См. также removeAnimation() и animations().
QList<QAbstractAnimation *> QAbstractTransition::animations() const
Возвращает список анимаций, связанных с этим переходом, или пустой список, если у него нет анимаций.
См. также addAnimation().
[override virtual protected] bool QAbstractTransition::event(QEvent *e)
Переопределяет: QObject::event(QEvent *e).
[pure virtual protected] bool QAbstractTransition::eventTest(QEvent *event)
Эта функция используется для определения, должен ли данный event вызвать этот переход. Переопределите эту функцию и верните true, если событие должно вызвать переход, иначе верните false.
QStateMachine *QAbstractTransition::machine() const
Возвращает машину состояний, частью которой является этот переход, или nullptr если переход не является частью машины состояний.
[pure virtual protected] void QAbstractTransition::onTransition(QEvent *event)
Эта функция вызывается, когда переход вызывается. Указанное event — это то, что вызвало переход. Переопределите эту функцию, чтобы выполнить пользовательскую обработку, когда переход вызывается.
void QAbstractTransition::removeAnimation(QAbstractAnimation *animation)
Удаляет заданную animation из этого перехода.
См. также addAnimation().
void QAbstractTransition::setTargetState(QAbstractState *target)
Устанавливает target-состояние этого перехода.
Примечание: Функция-сеттер для свойства targetState.
См. также targetState().
void QAbstractTransition::setTargetStates(const QList<QAbstractState *> &targets)
Устанавливает целевые состояния этого перехода в указанные targets.
Примечание: Функция-сеттер для свойства targetStates.
См. также targetStates().
void QAbstractTransition::setTransitionType(QAbstractTransition::TransitionType type)
Устанавливает тип перехода на type.
Примечание: Функция-сеттер для свойства transitionType.
См. также transitionType().
QState *QAbstractTransition::sourceState() const
Возвращает исходное состояние этого перехода или nullptr если у этого перехода нет исходного состояния.
Примечание: Функция-геттер для свойства sourceState.
QAbstractState *QAbstractTransition::targetState() const
Возвращает целевое состояние перехода или nullptr если у перехода нет целевого состояния.
Примечание: Функция-геттер для свойства targetState.
См. также setTargetState().
QList<QAbstractState *> QAbstractTransition::targetStates() const
Возвращает целевые состояния данного перехода или пустой список, если у перехода нет целевых состояний.
Примечание: Функция-геттер для свойства targetStates.
См. также setTargetStates().
QAbstractTransition::TransitionType QAbstractTransition::transitionType() const
Возвращает тип перехода.
Примечание: Функция-геттер для свойства transitionType.
См. также setTransitionType().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.1/qabstracttransition.html