Spec-Zone.ru › Qt 5.12

Класс QVariantAnimation

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

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

QPropertyAnimation

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

Типы public

typedef KeyValue
typedef KeyValues

Свойства

  • currentValue : const QVariant
  • duration : int
  • easingCurve : QEasingCurve
  • endValue : QVariant
  • startValue : QVariant
  • 6 свойств, унаследованных от QAbstractAnimation
  • 1 свойство, унаследованное от QObject

Функции public

QVariantAnimation(QObject *parent = nullptr)
virtual ~QVariantAnimation()
QVariant currentValue() const
QEasingCurve easingCurve() const
QVariant endValue() const
QVariant keyValueAt(qreal step) const
QVariantAnimation::KeyValues keyValues() const
void setDuration(int msecs)
void setEasingCurve(const QEasingCurve &easing)
void setEndValue(const QVariant &value)
void setKeyValueAt(qreal step, const QVariant &value)
void setKeyValues(const QVariantAnimation::KeyValues &keyValues)
void setStartValue(const QVariant &value)
QVariant startValue() const

Переопределённые функции public

virtual int duration() const override
  • 11 функций public, унаследованных от QAbstractAnimation
  • 32 функции public, унаследованные от QObject

Сигналы

void valueChanged(const QVariant &value)
  • 4 сигнала, унаследованные от QAbstractAnimation
  • 2 сигнала, унаследованные от QObject

Статические члены public

const QMetaObject staticMetaObject
  • 10 статических членов public, унаследованных от QObject

Функции protected

virtual QVariant interpolated(const QVariant &from, const QVariant &to, qreal progress) const
virtual void updateCurrentValue(const QVariant &value)

Переопределённые функции protected

virtual bool event(QEvent *event) override
virtual void updateCurrentTime(int) override
virtual void updateState(QAbstractAnimation::State newState, QAbstractAnimation::State oldState) override
  • 4 функции protected, унаследованные от QAbstractAnimation
  • 9 функций protected, унаследованные от QObject

Связанные внешние члены

void qRegisterAnimationInterpolator(QVariant (*)(const T &, const T &, qreal) func)

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

  • 6 public слотов, унаследованных от QAbstractAnimation
  • 1 public слот, унаследованный от QObject

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

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

Этот класс является частью Фреймворка анимации. Он служит базовым классом для анимаций свойств и элементов, с функциями для совместного использования функциональности.

Класс выполняет интерполяцию по QVariant, но оставляет использование интерполированных значений своим подклассам. В настоящее время Qt предоставляет QPropertyAnimation, который анимирует свойства Qt свойства. См. описание класса QPropertyAnimation, если вы хотите анимировать такие свойства.

Затем вы можете установить начальные и конечные значения для свойства, вызвав setStartValue() и setEndValue(), и, наконец, вызвать start() для запуска анимации. QVariantAnimation будет интерполировать свойство целевого объекта и излучать valueChanged(). Чтобы отреагировать на изменение текущего значения, вам необходимо переопределить виртуальную функцию updateCurrentValue() или подключиться к указанному сигналу.

Также можно установить значения в указанных шагах между начальным и конечным значением. Интерполяция затем коснется этих точек в указанных шагах. Обратите внимание, что начальное и конечное значения определены как ключевые значения в 0.0 и 1.0.

Существует два способа повлиять на то, как QVariantAnimation интерполирует значения. Вы можете установить кривую сглаживания, вызвав setEasingCurve(), и настроить продолжительность, вызвав setDuration(). Вы можете изменить способ интерполяции QVariant, создав подкласс QVariantAnimation и переопределив виртуальную функцию interpolated().

Наследование от QVariantAnimation может быть альтернативой, если у вас есть QVariant, которые вы не хотите объявлять как свойства Qt. Однако в большинстве случаев вам будет лучше объявить ваш QVariant как свойство.

Не все типы QVariant поддерживаются. Ниже приведен список поддерживаемых типов QVariant:

END_OF_DOCUMENT_MARKER
  • Целое
  • Беззнаковое целое
  • Двойная точность
  • Одинарная точность
  • QLine
  • QLineF
  • QPoint
  • QPointF
  • QSize
  • QSizeF
  • QRect
  • QRectF
  • QColor

Если вам нужно интерполировать другие типы вариантов, включая пользовательские типы, вы должны реализовать интерполяцию для них самостоятельно. Для этого вы можете зарегистрировать функцию интерполятора для заданного типа. Эта функция принимает 3 параметра: начальное значение, конечное значение и текущую степень выполнения.

Пример:

    QVariant myColorInterpolator(const QColor &start, const QColor &end, qreal progress)
    {
        ...
        return QColor(...);
    }
    ...
    qRegisterAnimationInterpolator<QColor>(myColorInterpolator);

Другой вариант — переопределить interpolated(), который возвращает значения интерполяции для интерполируемого значения.

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

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

typedef QVariantAnimation::KeyValue

Это typedef для QPair<qreal, QVariant>.

typedef QVariantAnimation::KeyValues

Это typedef для QVector<KeyValue>

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

currentValue : const QVariant

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

Это свойство описывает текущее значение; интерполированное значение между начальным значением и конечным значением, используя текущее время для прогресса. Само значение получается из interpolated(), который вызывается многократно во время выполнения анимации.

QVariantAnimation вызывает виртуальную функцию updateCurrentValue() при изменении текущего значения. Это особенно полезно для подклассов, которым нужно отслеживать обновления. Например, QPropertyAnimation использует эту функцию для анимации свойств Qt.

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

QVariant currentValue() const

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

void valueChanged(const QVariant &value)

См. также startValue и endValue.

duration : int

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

Это свойство описывает длительность анимации в миллисекундах. По умолчанию длительность составляет 250 миллисекунд.

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

virtual int duration() const override
void setDuration(int msecs)

См. также QAbstractAnimation::duration().

easingCurve : QEasingCurve

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

Это свойство определяет кривую смягчения анимации. По умолчанию используется линейная кривая смягчения, что приводит к линейной интерполяции. Предоставляются и другие кривые, например, QEasingCurve::InCirc, которая предоставляет кривую вхождения по окружности. Другой пример — QEasingCurve::InOutElastic, который обеспечивает упругий эффект для значений интерполированного варианта.

QVariantAnimation будет использовать QEasingCurve::valueForProgress() для преобразования «нормализованного прогресса» (currentTime / totalDuration) анимации в эффективный прогресс, фактически используемый анимацией. Именно этот эффективный прогресс будет прогрессом при вызове interpolated(). Кроме того, шаги в keyValues относятся к этому эффективному прогрессу.

Кривая смягчения используется с интерполятором, виртуальной функцией interpolated() и длительностью анимации для управления тем, как текущее значение изменяется по мере прогресса анимации.

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

QEasingCurve easingCurve() const
void setEasingCurve(const QEasingCurve &easing)

endValue : QVariant

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

Это свойство описывает конечное значение анимации.

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

QVariant endValue() const
void setEndValue(const QVariant &value)

См. также startValue.

startValue : QVariant

Это свойство содержит необязательное начальное значение анимации

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

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

QVariant startValue() const
void setStartValue(const QVariant &value)

См. также endValue.

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

QVariantAnimation::QVariantAnimation(QObject *parent = nullptr)

Создаёт объект QVariantAnimation. parent передаётся конструктору QAbstractAnimation.

[virtual] QVariantAnimation::~QVariantAnimation()

Удаляет анимацию.

[override virtual protected] bool QVariantAnimation::event(QEvent *event)

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

[virtual protected] QVariant QVariantAnimation::interpolated(const QVariant &from, const QVariant &to, qreal progress) const

Эта виртуальная функция возвращает линейную интерполяцию между вариантами from и to в момент progress, обычно значение от 0 до 1. Вы можете переопределить эту функцию в подклассе QVariantAnimation, чтобы обеспечить свой алгоритм интерполяции.

Обратите внимание, что для того, чтобы интерполяция работала с QEasingCurve, возвращающим значения меньше 0 или больше 1 (например, QEasingCurve::InBack), вы должны убедиться, что она может экстраполировать. Если семантика типа данных не допускает экстраполяции, эта функция должна обрабатывать это должным образом.

Вы должны вызвать реализацию QVariantAnimation этой функции, если хотите, чтобы ваш класс обрабатывал типы, уже поддерживаемые Qt (см. описание класса QVariantAnimation для списка поддерживаемых типов).

См. также QEasingCurve.

QVariant QVariantAnimation::keyValueAt(qreal step) const

Возвращает значение ключевой кадра для заданного step. Заданное step должно находиться в диапазоне от 0 до 1. Если для step нет KeyValue, возвращается недопустимый QVariant.

См. также keyValues() и setKeyValueAt().

QVariantAnimation::KeyValues QVariantAnimation::keyValues() const

Возвращает ключевые кадры этой анимации.

См. также keyValueAt() и setKeyValues().

void QVariantAnimation::setKeyValueAt(qreal step, const QVariant &value)

Создаёт ключевой кадр в заданном step со значением value. Заданное step должно находиться в диапазоне от 0 до 1.

См. также setKeyValues() и keyValueAt().

void QVariantAnimation::setKeyValues(const QVariantAnimation::KeyValues &keyValues)

Заменяет текущий набор ключевых кадров заданными keyValues. Шаг ключевых кадров должен находиться в диапазоне от 0 до 1.

См. также keyValues() и keyValueAt().

[override virtual protected] void QVariantAnimation::updateCurrentTime(int)

Переопределено из QAbstractAnimation::updateCurrentTime().

[virtual protected] void QVariantAnimation::updateCurrentValue(const QVariant &value)

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

Реализация базового класса ничего не делает.

См. также currentValue.

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

Переопределено из QAbstractAnimation::updateState().

[signal] void QVariantAnimation::valueChanged(const QVariant &value)

QVariantAnimation испускает этот сигнал всякий раз, когда изменяется текущее значение value.

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

См. также currentValue, startValue и endValue.

Связанные нечлены

void qRegisterAnimationInterpolator(QVariant (*)(const T &, const T &, qreal) func)

Регистрирует пользовательский интерполятор func для шаблона типа T. Интерполятор нужно зарегистрировать перед созданием анимации. Для отмены регистрации (и использования стандартного интерполятора) задайте func в значение 0.

Примечание: Эта функция безопасна для многопоточной обработки.

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

Spec-Zone.ru

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