Spec-Zone.ru › Qt 5.6

Класс QAbstractAnimation

Класс QAbstractAnimation является базовым для всех анимаций. Подробнее...

Заголовок: #include <QAbstractAnimation>
qmake: QT += core
С момента: Qt 4.6
Наследует: QObject
Наследуется:

QAnimationGroup, QPauseAnimation и QVariantAnimation

  • Список всех членов, включая наследуемые

Открытые типы

перечисление DeletionPolicy { KeepWhenStopped, DeleteWhenStopped }
перечисление Direction { Forward, Backward }
перечисление State { Stopped, Paused, Running }

Свойства

  • currentLoop : const int
  • currentTime : int
  • direction : Direction
  • duration : const int
  • loopCount : int
  • state : const State
  • 1 свойство унаследовано от QObject

Открытые функции

QAbstractAnimation(QObject *parent = Q_NULLPTR)
virtual ~QAbstractAnimation()
int currentLoop() const
int currentLoopTime() const
int currentTime() const
Direction direction() const
virtual int duration() const = 0
QAnimationGroup * group() const
int loopCount() const
void setDirection(Direction direction)
void setLoopCount(int loopCount)
State state() const
int totalDuration() const
  • 31 открытая функция унаследована от QObject

Открытые слоты

void pause()
void resume()
void setCurrentTime(int msecs)
void setPaused(bool paused)
void start(QAbstractAnimation::DeletionPolicy policy = KeepWhenStopped)
void stop()
  • 1 открытый слот унаследован от QObject

Сигналы

void currentLoopChanged(int currentLoop)
void directionChanged(QAbstractAnimation::Direction newDirection)
void finished()
void stateChanged(QAbstractAnimation::State newState, QAbstractAnimation::State oldState)
  • 2 сигнала унаследованы от QObject

Защищённые функции

virtual void updateCurrentTime(int currentTime) = 0
virtual void updateDirection(QAbstractAnimation::Direction direction)
virtual void updateState(QAbstractAnimation::State newState, QAbstractAnimation::State oldState)

Переопределённые защищённые функции

virtual bool event(QEvent *event)
  • 9 защищённых функций унаследовано от QObject

Дополнительные унаследованные члены

  • 11 статических публичных членов унаследовано от QObject

Подробное описание

Класс QAbstractAnimation является базовым для всех анимаций.

Класс определяет функции, общие для всех анимаций. Наследуя этот класс, можно создавать собственные анимации, которые подключаются к остальной части системы анимации.

Прогресс анимации определяется текущим временем (currentLoopTime()), которое измеряется в миллисекундах от начала анимации (0) до её конца (duration()). Значение обновляется автоматически, пока анимация выполняется. Его также можно задать непосредственно с помощью setCurrentTime().

В любой момент анимация находится в одном из трёх состояний: Running, Stopped или Paused — как определено в перечислении State. Текущее состояние можно изменить, вызвав start(), stop(), pause() или resume(). Анимация всегда сбрасывает своё текущее время при запуске. При паузе она продолжит с тем же текущим временем при возобновлении. При остановке анимация не может быть возобновлена, но сохраняет своё текущее время (до следующего запуска). QAbstractAnimation излучает stateChanged() всякий раз, когда её состояние меняется.

Анимация может повторяться любое количество раз, установив свойство loopCount. Когда текущее время анимации достигает её duration(), оно сбрасывается, и анимация продолжает выполняться. Значение 1 (по умолчанию) означает, что анимация выполнится один раз. Обратите внимание, что значение duration, равное -1, означает, что анимация будет выполняться до остановки; текущее время будет увеличиваться неограниченно. Когда текущее время равно duration(), и анимация находится в последнем цикле, вступает в состояние Stopped, и излучается сигнал finished().

QAbstractAnimation предоставляет чистые виртуальные функции, используемые подклассами для отслеживания прогресса анимации: duration() и updateCurrentTime(). Функция duration() позволяет указать длительность анимации (как обсуждалось выше). Фреймворк анимации вызывает updateCurrentTime() при изменении текущего времени. Переопределяя эту функцию, вы можете отслеживать прогресс анимации. Обратите внимание, что интервал между вызовами и количество вызовов этой функции не определены; однако, обычно это 60 обновлений в секунду.

Переопределяя updateState(), вы можете отслеживать изменения состояния анимации, что особенно полезно для анимаций, которые не управляются временем.

См. также QVariantAnimation, QPropertyAnimation, QAnimationGroup и Фреймворк анимации.

Документация типов членов

enum QAbstractAnimation::DeletionPolicy

Константа Значение Описание
QAbstractAnimation::KeepWhenStopped 0 Анимация не будет удалена при остановке.
QAbstractAnimation::DeleteWhenStopped 1 Анимация будет автоматически удалена при остановке.

enum QAbstractAnimation::Direction

Этот перечисление описывает направление анимации при состоянии Running.

Константа Значение Описание
QAbstractAnimation::Forward 0 Текущее время анимации увеличивается со временем (т.е. перемещается от 0 к концу / длительности).
QAbstractAnimation::Backward 1 Текущее время анимации уменьшается со временем (т.е. перемещается от конца / длительности к 0).

См. также direction.

enum QAbstractAnimation::State

Это перечисление описывает состояние анимации.

Константа Значение Описание
QAbstractAnimation::Stopped 0 Анимация не выполняется. Это начальное состояние QAbstractAnimation, и состояние QAbstractAnimation возвращается при завершении. Текущее время остается неизменным, пока не будет вызвано setCurrentTime() или анимация не будет запущена с помощью вызова start().
QAbstractAnimation::Paused 1 Анимация приостановлена (т.е. временно приостановлена). Вызов resume() возобновит анимацию.
QAbstractAnimation::Running 2 Анимация выполняется. Пока управление находится в цикле событий, QAbstractAnimation будет обновлять текущее время с регулярными интервалами, вызывая updateCurrentTime() по мере необходимости.

См. также state() и stateChanged().

Документация свойств

currentLoop : const int

Это свойство содержит текущую итерацию анимации

Это свойство описывает текущую итерацию анимации. По умолчанию количество итераций анимации равно 1, поэтому текущая итерация всегда будет 0. Если количество итераций равно 2, и анимация выходит за пределы своей длительности, она автоматически перемотается и перезапустится с текущим временем 0 и текущей итерацией 1 и так далее.

При изменении текущей итерации QAbstractAnimation излучает сигнал currentLoopChanged().

Функции доступа:

int currentLoop() const

Сигнал уведомления:

void currentLoopChanged(int currentLoop)

currentTime : int

Это свойство содержит текущее время и прогресс анимации

Это свойство описывает текущее время анимации. Вы можете изменить текущее время, вызвав setCurrentTime, или можете вызвать start() и позволить анимации выполняться, автоматически устанавливая текущее время по мере ее выполнения.

Текущее время анимации начинается с 0 и заканчивается значением totalDuration().

Функции доступа:

int currentTime() const
void setCurrentTime(int msecs)

См. также loopCount и currentLoopTime().

direction : Direction

Это свойство содержит направление анимации, когда она находится в состоянии Running.

Это направление указывает, увеличивается ли время от 0 к длительности анимации или уменьшается от длительности к 0 после вызова start().

По умолчанию это свойство установлено в Forward.

Функции доступа:

Direction direction() const
void setDirection(Direction direction)

Сигнал уведомления:

void directionChanged(QAbstractAnimation::Direction newDirection)

duration : const int

Это свойство содержит длительность анимации.

Если длительность равна -1, это означает, что длительность не определена. В этом случае loopCount игнорируется.

Функции доступа:

virtual int duration() const = 0

loopCount : int

Это свойство содержит количество повторений анимации

Это свойство описывает количество повторений анимации как целое число. По умолчанию это значение равно 1, что означает, что анимация должна выполняться один раз, а затем останавливаться. Изменяя его, вы можете запустить анимацию несколько раз. При значении 0 анимация вообще не будет запущена, а при значении -1 анимация будет выполняться бесконечно, пока не будет остановлена. Не поддерживается циклическое воспроизведение анимации с неопределенной длительностью. Она будет выполнена только один раз.

Функции доступа:

int loopCount() const
void setLoopCount(int loopCount)

state : const State

состояние анимации.

Это свойство описывает текущее состояние анимации. Когда состояние анимации меняется, QAbstractAnimation излучает сигнал stateChanged().

Функции доступа:

State state() const

Сигнал уведомления:

void stateChanged(QAbstractAnimation::State newState, QAbstractAnimation::State oldState)

Документация функций членов

QAbstractAnimation::QAbstractAnimation(QObject *parent = Q_NULLPTR)

Конструктор базового класса QAbstractAnimation, и передает parent конструктору QObject.

См. также QVariantAnimation и QAnimationGroup.

[virtual] QAbstractAnimation::~QAbstractAnimation()

Останавливает анимацию, если она запущена, а затем уничтожает QAbstractAnimation. Если анимация является частью QAnimationGroup, она автоматически удаляется перед уничтожением.

[signal] void QAbstractAnimation::currentLoopChanged(int currentLoop)

QAbstractAnimation испускает этот сигнал всякий раз, когда изменяется текущий цикл. currentLoop — текущий цикл.

Примечание: Сигнал-уведомление для свойства currentLoop.

См. также currentLoop() и loopCount().

int QAbstractAnimation::currentLoopTime() const

Возвращает текущее время внутри текущего цикла. Оно может изменяться от 0 до duration().

См. также duration() и currentTime.

[signal] void QAbstractAnimation::directionChanged(QAbstractAnimation::Direction newDirection)

QAbstractAnimation испускает этот сигнал всякий раз, когда изменяется направление. newDirection — новое направление.

Примечание: Сигнал-уведомление для свойства direction.

См. также direction.

[pure virtual] int QAbstractAnimation::duration() const

Эта чисто виртуальная функция возвращает длительность анимации и определяет, в течение какого времени QAbstractAnimation должен обновлять текущее время. Эта длительность локальна и не включает счётчик циклов.

Возвращаемое значение -1 указывает, что анимация не имеет определённой длительности; анимация должна работать бесконечно до остановки. Это полезно для анимаций, которые не управляются временем, или когда трудно предсказать её длительность (например, воспроизведение аудио в игре, управляемое событиями).

Если анимация является параллельной QAnimationGroup, длительность будет максимальной длительностью всех её анимаций. Если анимация является последовательной QAnimationGroup, длительность будет суммой длительностей всех её анимаций.

Примечание: Функция-получатель для свойства duration.

См. также loopCount.

[virtual protected] bool QAbstractAnimation::event(QEvent *event)

Переопределено из QObject::event().

[signal] void QAbstractAnimation::finished()

QAbstractAnimation испускает этот сигнал после того, как анимация остановилась и достигла конца.

Этот сигнал испускается после stateChanged().

См. также stateChanged().

QAnimationGroup *QAbstractAnimation::group() const

Если эта анимация является частью QAnimationGroup, эта функция возвращает указатель на группу; в противном случае возвращает 0.

См. также QAnimationGroup::addAnimation().

[slot] void QAbstractAnimation::pause()

Приостанавливает анимацию. Когда анимация приостановлена, state() возвращает Paused. Значение currentTime останется неизменным до тех пор, пока не будет вызвано resume() или start(). Если вы хотите продолжить с текущего времени, вызовите resume().

См. также start(), state() и resume().

[slot] void QAbstractAnimation::resume()

Возобновляет анимацию после её приостановки. При возобновлении анимации она испускает сигналы resumed() и stateChanged(). Текущее время не изменяется.

См. также start(), pause() и state().

[slot] void QAbstractAnimation::setPaused(bool paused)

Если paused равно true, анимация приостанавливается. Если paused равно false, анимация возобновляется.

См. также state(), pause() и resume().

[slot] void QAbstractAnimation::start(QAbstractAnimation::DeletionPolicy policy = KeepWhenStopped)

Запускает анимацию. Аргумент policy указывает, должна ли анимация быть удалена по завершении. При запуске анимации испускается сигнал stateChanged(), и state() возвращает Running. Когда управление достигает цикла событий, анимация выполняется сама, периодически вызывая updateCurrentTime() по мере её выполнения.

Если анимация в настоящее время остановлена или уже достигла конца, вызов start() перемотает анимацию и начнёт её сначала. Когда анимация достигает конца, она либо останавливается, либо, если уровень циклов больше 1, перематывается и продолжается с начала.

Если анимация уже запущена, эта функция ничего не делает.

См. также stop() и state().

[signal] void QAbstractAnimation::stateChanged(QAbstractAnimation::State newState, QAbstractAnimation::State oldState)

QAbstractAnimation испускает этот сигнал всякий раз, когда состояние анимации изменяется с oldState на newState. Этот сигнал испускается после вызова виртуальной функции updateState().

Примечание: Сигнал-уведомление для свойства state.

См. также updateState().

[slot] void QAbstractAnimation::stop()

Останавливает анимацию. Когда анимация остановлена, она испускает сигнал stateChanged(), и state() возвращает Stopped. Текущее время не изменяется.

Если анимация останавливается сама по себе после достижения конца (т.е. currentLoopTime() == duration() и currentLoop() > loopCount() - 1), испускается сигнал finished().

См. также start() и state().

int QAbstractAnimation::totalDuration() const

Возвращает полную и эффективную длительность анимации, включая счётчик циклов.

См. также duration() и currentTime.

[pure virtual protected] void QAbstractAnimation::updateCurrentTime(int currentTime)

Эта чисто виртуальная функция вызывается каждый раз, когда изменяется currentTime анимации.

См. также updateState().

[virtual protected] void QAbstractAnimation::updateDirection(QAbstractAnimation::Direction direction)

Эта виртуальная функция вызывается QAbstractAnimation, когда изменяется направление анимации. Аргумент direction — новое направление.

См. также setDirection() и direction().

[virtual protected] void QAbstractAnimation::updateState(QAbstractAnimation::State newState, QAbstractAnimation::State oldState)

Эта виртуальная функция вызывается QAbstractAnimation, когда состояние анимации изменяется с oldState на newState.

См. также start(), stop(), pause() и resume().

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.6/qabstractanimation.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API