Класс 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.
Функция sourceState() возвращает исходное состояние перехода. Функция targetStates() возвращает целевые состояния перехода. Функция machine() возвращает машину состояний, к которой относится переход.
Сигнал triggered() испускается, когда переход был запущен.
Переходы могут вызывать воспроизведение анимаций. Используйте функцию addAnimation() для добавления анимации к переходу.
Наследование
Функция eventTest() вызывается машиной состояний, чтобы определить, должен ли событие запускать переход. В вашей реализации вы обычно проверяете тип события и приводите объект события к нужному типу, и проверяете, что одно или несколько свойств события соответствуют вашим критериям.
Функция onTransition() вызывается, когда переход запускается; переопределите эту функцию, чтобы выполнить пользовательскую обработку перехода.
Документация по типу члена
Перечисление QAbstractTransition::TransitionType
Это перечисление определяет тип перехода. По умолчанию тип — внешний переход.
| Константа | Значение | Описание |
|---|---|---|
QAbstractTransition::ExternalTransition |
0 |
Любое состояние, являющееся исходным состоянием перехода (который не является переходом без целевого состояния), сохраняется, и при необходимости повторно входит. |
QAbstractTransition::InternalTransition |
1 |
Если целевое состояние перехода является подсостоянием составного состояния, а это составное состояние — исходным состоянием, внутренний переход не выйдет из исходного состояния. |
См. также QAbstractTransition::transitionType.
END_OF_DOCUMENT_MARKERДокументация свойств
[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() | [см. примечание ниже] |
Примечание: Это частный сигнал. Он может использоваться в соединениях сигналов, но не может быть выпущен пользователем.
[bindable] transitionType : TransitionType
Примечание: Это свойство поддерживает привязки QProperty.
указывает, является ли этот переход внутренним или внешним.
Внутренние и внешние переходы ведут себя одинаково, за исключением случая, когда исходное состояние перехода является составным состоянием, а целевое(ые) состояние(я) является (являются) потомком(ками) исходного. В этом случае внутренний переход не выйдет из и не вернётся в исходное состояние, в то время как внешний переход вернётся.
По умолчанию тип — внешний переход.
Документация по функциям-членам
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)
Устанавливает целевое состояние этого перехода.
Примечание: Функция-сеттер для свойства 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.2/qabstracttransition.html