Класс QPropertyAnimation
Класс QPropertyAnimation анимирует свойства Qt. Подробнее...
| Заголовок: | #include <QPropertyAnimation> |
| qmake: | QT += core |
| С тех пор: | Qt 4.6 |
| Наследует: | QVariantAnimation |
Этот класс был представлен в Qt 4.6.
Свойства
- propertyName : QByteArray
- targetObject : QObject*
Открытые функции
| QPropertyAnimation(QObject *target, const QByteArray &propertyName, QObject *parent = nullptr) | |
| QPropertyAnimation(QObject *parent = nullptr) | |
| virtual | ~QPropertyAnimation() |
| QByteArray | propertyName() const |
| void | setPropertyName(const QByteArray &propertyName) |
| void | setTargetObject(QObject *target) |
| QObject * | targetObject() const |
Переопределенные защищенные функции
| virtual bool | event(QEvent *event) override |
| virtual void | updateCurrentValue(const QVariant &value) override |
| virtual void | updateState(QAbstractAnimation::State newState, QAbstractAnimation::State oldState) override |
Подробное описание
QPropertyAnimation выполняет интерполяцию свойств Qt. Поскольку значения свойств хранятся в QVariant, класс наследует от QVariantAnimation и поддерживает анимацию тех же метатипов, что и его базовый класс.
Класс, объявляющий свойства, должен быть объектом QObject. Для возможности анимации свойства он должен предоставить установщик (чтобы QPropertyAnimation мог установить значение свойства). Это позволяет анимировать многие виджеты Qt. Рассмотрим пример:
QPropertyAnimation *animation = new QPropertyAnimation(myWidget, "geometry");
animation->setDuration(10000);
animation->setStartValue(QRect(0, 0, 100, 30));
animation->setEndValue(QRect(250, 250, 100, 30));
animation->start(); Имя свойства и экземпляр QObject, свойство которого следует анимировать, передаются в конструктор. Затем можно указать начальное и конечное значение свойства. Процедура аналогична для свойств в классах, которые вы реализовали самостоятельно — просто убедитесь с помощью QVariantAnimation, что ваш тип QVariant поддерживается.
Описание класса QVariantAnimation подробно объясняет, как настроить анимацию. Однако, если начальное значение не задано, свойство будет начинаться с значения, которое оно имело при создании экземпляра QPropertyAnimation.
QPropertyAnimation работает автономно. Для сложных анимаций, например, содержащих несколько объектов, предоставлена QAnimationGroup. Группа анимации — это анимация, которая может содержать другие анимации и управлять их воспроизведением. Обратите внимание на QParallelAnimationGroup для примера.
См. также QVariantAnimation, QAnimationGroup и Фреймворк анимации.
Документация по свойствам
propertyName : QByteArray
Это свойство содержит имя целевого свойства для этой анимации
Это свойство определяет имя целевого свойства для этой анимации. Имя свойства необходимо для работы анимации.
Функции доступа:
| QByteArray | propertyName() const |
| void | setPropertyName(const QByteArray &propertyName) |
targetObject : QObject*
Это свойство содержит целевой QObject для этой анимации.
Это свойство определяет целевой QObject для этой анимации.
Функции доступа:
| QObject * | targetObject() const |
| void | setTargetObject(QObject *target) |
Документация по членам функций
QPropertyAnimation::QPropertyAnimation(QObject *target, const QByteArray &propertyName, QObject *parent = nullptr)
Создаёт объект QPropertyAnimation. parent передаётся конструктору QObject. Анимация изменяет свойство propertyName объекта target. Значение по умолчанию для длительности — 250 мс.
См. также targetObject и propertyName.
QPropertyAnimation::QPropertyAnimation(QObject *parent = nullptr)
Создаёт объект QPropertyAnimation. parent передаётся конструктору QObject.
[virtual] QPropertyAnimation::~QPropertyAnimation()
Уничтожает экземпляр QPropertyAnimation.
[override virtual protected] bool QPropertyAnimation::event(QEvent *event)
Переопределяет: QVariantAnimation::event(QEvent *event).
[override virtual protected] void QPropertyAnimation::updateCurrentValue(const QVariant &value)
Переопределяет: QVariantAnimation::updateCurrentValue(const QVariant &value).
Эта виртуальная функция вызывается QVariantAnimation всякий раз, когда изменяется текущее значение. value — новое обновлённое значение. Она обновляет текущее значение свойства в целевом объекте.
См. также currentValue и currentTime.
[override virtual protected] void QPropertyAnimation::updateState(QAbstractAnimation::State newState, QAbstractAnimation::State oldState)
Переопределяет: QVariantAnimation::updateState(QAbstractAnimation::State newState, QAbstractAnimation::State oldState).
Если startValue не определено, когда состояние анимации изменяется с Stopped на Running, текущее значение свойства используется как начальное значение для анимации.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.13/qpropertyanimation.html