QKeyframeAnimation Class

class Qt3DAnimation::QKeyframeAnimation

Eine Klasse, die eine einfache Keyframe-Animation auf QTransform implementiert. Mehr...

Kopfzeile: #include <QKeyframeAnimation>
CMake: find_package(Qt6 REQUIRED COMPONENTS 3danimation)
target_link_libraries(mytarget PRIVATE Qt6::3danimation)
qmake: QT += 3danimation
In QML: KeyframeAnimation
Vererbt: Qt3DAnimation::QAbstractAnimation
Status: Veraltet

Öffentliche Typen

enum RepeatMode { None, Constant, Repeat }

Eigenschaften

Öffentliche Funktionen

QKeyframeAnimation(QObject *parent = nullptr)
void addKeyframe(Qt3DCore::QTransform *keyframe)
QEasingCurve easing() const
Qt3DAnimation::QKeyframeAnimation::RepeatMode endMode() const
QList<float> framePositions() const
QList<Qt3DCore::QTransform *> keyframeList() const
void removeKeyframe(Qt3DCore::QTransform *keyframe)
void setKeyframes(const QList<Qt3DCore::QTransform *> &keyframes)
Qt3DAnimation::QKeyframeAnimation::RepeatMode startMode() const
Qt3DCore::QTransform *target() const
QString targetName() const

Öffentliche Slots

void setEasing(const QEasingCurve &easing)
void setEndMode(Qt3DAnimation::QKeyframeAnimation::RepeatMode mode)
void setFramePositions(const QList<float> &positions)
void setStartMode(Qt3DAnimation::QKeyframeAnimation::RepeatMode mode)
void setTarget(Qt3DCore::QTransform *target)
void setTargetName(const QString &name)

Signale

void easingChanged(const QEasingCurve &easing)
void endModeChanged(Qt3DAnimation::QKeyframeAnimation::RepeatMode endMode)
void framePositionsChanged(const QList<float> &positions)
void startModeChanged(Qt3DAnimation::QKeyframeAnimation::RepeatMode startMode)
void targetChanged(Qt3DCore::QTransform *target)
void targetNameChanged(const QString &name)

Detaillierte Beschreibung

Die Klasse Qt3DAnimation::QKeyframeAnimation implementiert eine einfache Keyframe-Animation, die zur Animation von QTransform verwendet werden kann. Die Keyframes bestehen aus mehreren zeitgesteuerten QTransformationen, die interpoliert und auf das Ziel QTransform angewendet werden. QEasingCurve wird zwischen den Keyframes verwendet, um den Interpolator zu steuern. RepeatMode kann festgelegt werden, wenn die für QKeyframeAnimation festgelegte Position unter oder über den in den Keyframe-Positionen definierten Werten liegt.

Dokumentation des Membertyps

enum QKeyframeAnimation::RepeatMode

Diese Aufzählung gibt an, wie Positionswerte außerhalb von Keyframe-Werten behandelt werden.

KonstanteWertBeschreibung
Qt3DAnimation::QKeyframeAnimation::None0Die Animation wird nicht auf die Zieltransformation angewendet.
Qt3DAnimation::QKeyframeAnimation::Constant1Der Rand-Keyframe-Wert wird verwendet.
Qt3DAnimation::QKeyframeAnimation::Repeat2Die Animation wird wiederholt.

Dokumentation der Eigenschaft

easing : QEasingCurve

Hält die Lockerungskurve des Interpolators zwischen Keyframes fest.

Zugriffsfunktionen:

QEasingCurve easing() const
void setEasing(const QEasingCurve &easing)

Melder-Signal:

void easingChanged(const QEasingCurve &easing)

endMode : RepeatMode

Hält den Wiederholungsmodus für die Positionswerte, die größer sind als die letzte Bildposition.

Zugriffsfunktionen:

Qt3DAnimation::QKeyframeAnimation::RepeatMode endMode() const
void setEndMode(Qt3DAnimation::QKeyframeAnimation::RepeatMode mode)

Melder-Signal:

void endModeChanged(Qt3DAnimation::QKeyframeAnimation::RepeatMode endMode)

framePositions : QList<float>

Enthält die Positionen der Keyframes. Jede Position in der Liste gibt die Position des entsprechenden Keyframes mit demselben Index an. Die Werte müssen in aufsteigender Reihenfolge stehen. Die Werte können positiv oder negativ sein und haben keine vordefinierte Einheit.

Zugriffsfunktionen:

QList<float> framePositions() const
void setFramePositions(const QList<float> &positions)

Benachrichtigungssignal:

void framePositionsChanged(const QList<float> &positions)

startMode : RepeatMode

Hält den Wiederholungsmodus für die Positionswerte, die kleiner als die erste Bildposition sind.

Zugriffsfunktionen:

Qt3DAnimation::QKeyframeAnimation::RepeatMode startMode() const
void setStartMode(Qt3DAnimation::QKeyframeAnimation::RepeatMode mode)

Melder-Signal:

void startModeChanged(Qt3DAnimation::QKeyframeAnimation::RepeatMode startMode)

target : Qt3DCore::QTransform*

Enthält das Ziel QTransform, auf das die Animation angewendet wird.

Zugriffsfunktionen:

Qt3DCore::QTransform *target() const
void setTarget(Qt3DCore::QTransform *target)

Benachrichtigungssignal:

void targetChanged(Qt3DCore::QTransform *target)

targetName : QString

Enthält den Namen der Zieltransformation. Dies ist eine praktische Eigenschaft, die die Zuordnung der Zieltransformation zur Keyframe-Animation erleichtert. Der Name ist in der Regel derselbe wie der Name der übergeordneten Entität der Zieltransformation, muss es aber nicht sein.

Zugriffsfunktionen:

QString targetName() const
void setTargetName(const QString &name)

Benachrichtigungssignal:

void targetNameChanged(const QString &name)

Member Function Dokumentation

[explicit] QKeyframeAnimation::QKeyframeAnimation(QObject *parent = nullptr)

Konstruiert eine QKeyframeAnimation mit parent.

void QKeyframeAnimation::addKeyframe(Qt3DCore::QTransform *keyframe)

Fügt neue keyframe am Ende der Animation hinzu. Die QTransform kann der Animation mehrmals hinzugefügt werden.

QList<Qt3DCore::QTransform *> QKeyframeAnimation::keyframeList() const

Gibt die Liste der Keyframes zurück.

void QKeyframeAnimation::removeKeyframe(Qt3DCore::QTransform *keyframe)

Entfernt eine keyframe aus der Animation. Wenn dieselbe QTransform mehrmals als Keyframe festgelegt wird, werden alle Vorkommen entfernt.

void QKeyframeAnimation::setKeyframes(const QList<Qt3DCore::QTransform *> &keyframes)

Setzt die keyframes der Animation. Alte Keyframes werden gelöscht.

© 2025 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.