Класс QAbstractTransition
Класс QAbstractTransition является базовым классом переходов между объектами QAbstractState. Подробнее...
| Заголовок: | #include <QAbstractTransition> |
| qmake: | QT += core |
| С тех пор: | Qt 4.6 |
| Наследуется от: | QObject |
| Наследуется: |
Этот класс был представлен в Qt 4.6.
Типы публичного доступа
| Перечисление | 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 является частью Фреймворка машины состояний.
Функция sourceState() возвращает источник перехода. Функция targetStates() возвращает цели перехода. Функция machine() возвращает машину состояний, частью которой является переход.
Сигнал triggered() подаётся, когда переход был инициирован.
Переходы могут вызывать воспроизведение анимаций. Используйте функцию addAnimation(), чтобы добавить анимацию к переходу.
Наследование
Функция eventTest() вызывается машиной состояний, чтобы определить, должен ли событие вызвать переход. В вашей реализации вы обычно проверяете тип события и приводите объект события к соответствующему типу и проверяете, что одно или несколько свойств события соответствуют вашим критериям.
Функция onTransition() вызывается, когда переход инициируется; переопределите эту функцию, чтобы выполнить пользовательскую обработку для перехода.
Документация по типам членов
enum QAbstractTransition::TransitionType
Это перечисление определяет вид перехода. По умолчанию тип — внешний переход.
| Постоянная | Значение | Описание |
|---|---|---|
QAbstractTransition::ExternalTransition |
0 |
Любое состояние, являющееся исходным состоянием перехода (которое не является переходом без цели), покидается и повторно вводится при необходимости. |
QAbstractTransition::InternalTransition |
1 |
Если целевое состояние перехода является подсостоянием составного состояния, а это составное состояние является исходным состоянием, внутренний переход не покинет исходное состояние. |
См. такжеQAbstractTransition::transitionType.
Документация свойств
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.
[signal] void QAbstractTransition::targetStateChanged()
Этот сигнал излучается, когда свойство targetState изменяется.
Эта функция была добавлена в Qt 5.4.
Примечание: Это частный сигнал. Его можно использовать в подключениях сигналов, но он не может быть испущен пользователем.
Примечание: Сигнал уведомления для свойства targetState.
См. также QAbstractTransition::targetState.
[signal] void QAbstractTransition::targetStatesChanged()
Этот сигнал излучается, когда свойство targetStates изменяется.
Эта функция была добавлена в Qt 5.4.
Примечание: Это частный сигнал. Его можно использовать в подключениях сигналов, но он не может быть испущен пользователем.
Примечание: Сигнал уведомления для свойства targetStates.
См. также QAbstractTransition::targetStates.
[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-5.14/qabstracttransition.html