Класс QPropertyAnimation
Класс QPropertyAnimation анимирует свойства Qt. Подробнее...
| Заголовок: | #include <QPropertyAnimation> |
| CMake: | find_package(Qt6 COMPONENTS Core REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
| Наследует: | QVariantAnimation |
Свойства
- 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 и Фреймворк анимации.
Документация по свойствам
[bindable] propertyName : QByteArray
Примечание: Это свойство поддерживает привязки QProperty.
Это свойство содержит имя целевого свойства для этой анимации
Это свойство определяет имя целевого свойства для этой анимации. Имя свойства необходимо для работы анимации.
[bindable] targetObject : QObject*
Примечание: Это свойство поддерживает привязки QProperty.
Это свойство содержит целевой QObject для этой анимации.
Это свойство определяет целевой QObject для этой анимации.
Документация по членам функций
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).
Если начальное значение не определено, когда состояние анимации изменяется с Stopped на Running, текущее значение свойства используется в качестве начального значения для анимации.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qpropertyanimation.html