Spec-Zone.ru › Qt 5.11

Класс QAbstractAnimation

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

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

QAnimationGroup, QPauseAnimation и QVariantAnimation

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

Типы публичного доступа

Перечисление DeletionPolicy { KeepWhenStopped, DeleteWhenStopped }
Перечисление Direction { Вперед, Назад }
Перечисление State { Остановлен, Приостановлен, Запущен }

Свойства

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

Функции публичного доступа

QAbstractAnimation(QObject *parent = nullptr)
virtual ~QAbstractAnimation()
int currentLoop() const
int currentLoopTime() const
int currentTime() const
QAbstractAnimation::Direction direction() const
virtual int duration() const = 0
QAnimationGroup * group() const
int loopCount() const
void setDirection(QAbstractAnimation::Direction direction)
void setLoopCount(int loopCount)
QAbstractAnimation::State state() const
int totalDuration() const
  • 32 функции публичного доступа унаследованы от 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) override
  • 9 защищенных функций унаследованы от QObject

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

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

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

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

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

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

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

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

END_OF_DOCUMENT_MARKER

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.

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

QAbstractAnimation::Direction direction() const
void setDirection(QAbstractAnimation::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().

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

QAbstractAnimation::State state() const

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

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

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

QAbstractAnimation::QAbstractAnimation(QObject *parent = 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.

[override 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)

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

См. также 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.11/qabstractanimation.html

Spec-Zone.ru

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