Класс 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 и Фреймворк анимации.
Документация по свойствам
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-6.1/qpropertyanimation.html