Класс 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.0/qpropertyanimation.html