QPropertyAnimation Class
Die Klasse „QPropertyAnimation“ animiert Qt-Eigenschaften. Mehr...
| Header: | #include <QPropertyAnimation> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
| Erbt von: | QVariantAnimation |
- Liste aller Mitglieder, einschließlich geerbter Mitglieder
- QPropertyAnimation ist Teil des Animations-Frameworks.
Eigenschaften
- propertyName : QByteArray
- targetObject : QObject*
Öffentliche Funktionen
| QPropertyAnimation(QObject *parent = nullptr) | |
| QPropertyAnimation(QObject *target, const QByteArray &propertyName, QObject *parent = nullptr) | |
| virtual | ~QPropertyAnimation() |
| QBindable<QByteArray> | bindablePropertyName() |
| QBindable<QObject *> | bindableTargetObject() |
| QByteArray | propertyName() const |
| void | setPropertyName(const QByteArray &propertyName) |
| void | setTargetObject(QObject *target) |
| QObject * | targetObject() const |
Neu implementierte geschützte Funktionen
| virtual bool | event(QEvent *event) override |
| virtual void | updateCurrentValue(const QVariant &value) override |
| virtual void | updateState(QAbstractAnimation::State newState, QAbstractAnimation::State oldState) override |
Ausführliche Beschreibung
QPropertyAnimation führt Interpolationen über Qt-Eigenschaften durch. Da Eigenschaftswerte in ` QVariant`-Objekten gespeichert werden, erbt die Klasse von ` QVariantAnimation` und unterstützt die Animation derselben ` meta types ` wie ihre Oberklasse.
Eine Klasse, die Eigenschaften deklariert, muss eine „ QObject “ sein. Damit eine Eigenschaft animiert werden kann, muss sie einen Setter bereitstellen (damit „QPropertyAnimation“ den Wert der Eigenschaft setzen kann). Beachten Sie, dass dadurch die Animation vieler Qt Widgets möglich ist. Sehen wir uns ein Beispiel an:
#include <QApplication>
#include <QPushButton>
#include <QPropertyAnimation>
class MyButtonWidget : public QWidget
{
public:
MyButtonWidget(QWidget *parent = nullptr);
};
MyButtonWidget::MyButtonWidget(QWidget *parent) : QWidget(parent)
{
QPushButton *button = new QPushButton(tr("Animated Button"), this);
QPropertyAnimation *anim = new QPropertyAnimation(button, "pos", this);
anim->setDuration(10000);
anim->setStartValue(QPoint(0, 0));
anim->setEndValue(QPoint(100, 250));
anim->start();
}
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MyButtonWidget buttonAnimWidget;
buttonAnimWidget.resize(QSize(800, 600));
buttonAnimWidget.show();
return a.exec();
}Hinweis: Sie können die Laufzeit einer Animation auch steuern, indem Sie beim Starten der Animation eine ` delete policy ` auswählen.
Der Eigenschaftsname und die „ QObject “-Instanz der zu animierenden Eigenschaft werden an den Konstruktor übergeben. Anschließend können Sie den Start- und Endwert der Eigenschaft festlegen. Das Verfahren ist für Eigenschaften in selbst implementierten Klassen identisch – überprüfen Sie lediglich unter QVariantAnimation, ob Ihr „ QVariant “-Typ unterstützt wird.
In der Klassenbeschreibung von ` QVariantAnimation ` wird detailliert erklärt, wie die Animation eingerichtet wird. Beachten Sie jedoch, dass die Eigenschaft, wenn kein Startwert festgelegt ist, mit dem Wert beginnt, den sie zum Zeitpunkt der Erstellung der `QPropertyAnimation`-Instanz hatte.
QPropertyAnimation funktioniert für sich genommen hervorragend. Für komplexe Animationen, die beispielsweise mehrere Objekte enthalten, steht „ QAnimationGroup “ zur Verfügung. Eine Animationsgruppe ist eine Animation, die andere Animationen enthalten kann und die steuern kann, wann ihre Animationen abgespielt werden. Ein Beispiel finden Sie unter QParallelAnimationGroup.
Siehe auch „ QVariantAnimation “, „ QAnimationGroup “ und „Das Animations-Framework“.
Dokumentation zu den Eigenschaften
[bindable] propertyName : QByteArray
Hinweis: Diese Eigenschaft unterstützt „ QProperty “-Bindungen.
Diese Eigenschaft enthält den Namen der Ziel-Eigenschaft für diese Animation
Diese Eigenschaft definiert den Namen der Zieleigenschaft für diese Animation. Der Eigenschaftsname ist für die Funktion der Animation erforderlich.
Zugriffsfunktionen:
| QByteArray | propertyName() const |
| void | setPropertyName(const QByteArray &propertyName) |
[bindable] targetObject : QObject*
Hinweis: Diese Eigenschaft unterstützt „ QProperty “-Bindungen.
Diese Eigenschaft enthält die Ziel- QObject für diese Animation.
Diese Eigenschaft definiert den Ziel QObject für diese Animation.
Zugriffsfunktionen:
| QObject * | targetObject() const |
| void | setTargetObject(QObject *target) |
Dokumentation zu den Member-Funktionen
QPropertyAnimation::QPropertyAnimation(QObject *parent = nullptr)
Erstellen Sie ein `QPropertyAnimation`-Objekt. ` parent ` wird an den Konstruktor von ` QObject` übergeben.
QPropertyAnimation::QPropertyAnimation(QObject *target, const QByteArray &propertyName, QObject *parent = nullptr)
Erstellen Sie ein `QPropertyAnimation`-Objekt. ` parent ` wird an den Konstruktor von ` QObject` übergeben. Die Animation ändert die Eigenschaft ` propertyName ` von ` target`. Die Standarddauer beträgt 250 ms.
Siehe auch targetObject und propertyName.
[virtual noexcept] QPropertyAnimation::~QPropertyAnimation()
Löscht die Instanz „ QPropertyAnimation “.
[override virtual protected] bool QPropertyAnimation::event(QEvent *event)
Umsetzt: ` QVariantAnimation::event(QEvent *event)`.
[override virtual protected] void QPropertyAnimation::updateCurrentValue(const QVariant &value)
Umsetzt: ` QVariantAnimation::updateCurrentValue(const QVariant &value)`.
Diese virtuelle Funktion wird von ` QVariantAnimation ` aufgerufen, sobald sich der aktuelle Wert ändert. ` value ` ist der neue, aktualisierte Wert. Sie aktualisiert den aktuellen Wert der Eigenschaft des Zielobjekts, sofern die Animation nicht angehalten wurde.
Siehe auch currentValue und currentTime.
[override virtual protected] void QPropertyAnimation::updateState(QAbstractAnimation::State newState, QAbstractAnimation::State oldState)
Implementiert: ` QVariantAnimation::updateState` (QAbstractAnimation::State newState, QAbstractAnimation::State oldState).
Wenn die Funktion ` startValue ` nicht definiert ist, wenn sich der Zustand der Animation von „Stopped“ zu „Running“ ändert, wird der aktuelle Eigenschaftswert als Anfangswert für die Animation verwendet.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.