Класс QAbstractTransition
Класс QAbstractTransition является базовым классом переходов между объектами QAbstractState. Подробнее...
| Заголовок: | #include <QAbstractTransition> |
| qmake: | QT += core |
| С тех пор: | Qt 4.6 |
| Наследует: | QObject |
| Наследуется от: |
Этот класс был введен в Qt 4.6.
Типы public
| перечисление | TransitionType { ExternalTransition, InternalTransition } |
Свойства
- sourceState : QState* const
- targetState : QAbstractState*
- targetStates : QList<QAbstractState*>
- transitionType : TransitionType
Функции public
| 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() вызывается при срабатывании перехода; переопределите эту функцию для выполнения пользовательской обработки перехода.
Документация типов членов
перечисление 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.13/qabstracttransition.html