Auf dieser Seite

Qt3DAnimation::QKeyframeAnimation Class

class Qt3DAnimation::QKeyframeAnimation

Eine Klasse, die eine einfache Keyframe-Animation für „ QTransform “ implementiert. Mehr...

Überschrift: #include <qkeyframeanimation.h>
CMake: find_package(Qt6 REQUIRED COMPONENTS 3danimation)
target_link_libraries(mytarget PRIVATE Qt6::3danimation)
qmake: QT += 3danimation
In QML: KeyframeAnimation
Erbt von: Qt3DAnimation::QAbstractAnimation
Status: Technologievorschau

Diese Klasse befindet sich in der Technologievorschau und kann sich noch ändern.

Ö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)

Ausführliche Beschreibung

Eine „ Qt3DAnimation::QKeyframeAnimation “-Klasse implementiert eine einfache Keyframe-Animation, die zur Animation von „ QTransform “ verwendet werden kann. Die Keyframes bestehen aus mehreren zeitgesteuerten `QTransforms`, die interpoliert und auf das Zielobjekt ` QTransform` angewendet werden. Zwischen den Keyframes wird ` QEasingCurve ` verwendet, um den Interpolator zu steuern. ` RepeatMode ` kann festgelegt werden, wenn die in der `QKeyframeAnimation` festgelegte Position unterhalb oder oberhalb der in den Keyframe-Positionen definierten Werte liegt.

Dokumentation zu den Mitgliedstypen

enum QKeyframeAnimation::RepeatMode

Diese Aufzählung legt fest, wie Positionswerte außerhalb der Keyframe-Werte behandelt werden.

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

Eigenschaftsdokumentation

easing : QEasingCurve

Enthält die Überblendkurve des Interpolators zwischen den Keyframes.

Zugriffsfunktionen:

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

Benachrichtigungssignal:

void easingChanged(const QEasingCurve &easing)

endMode : RepeatMode

Behält den Wiederholungsmodus für die Positionswerte bei, die größer sind als die Position des letzten Frames.

Zugriffsfunktionen:

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

Benachrichtigungssignal:

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 angeordnet sein. 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

Speichert den Wiederholungsmodus für die Positionswerte, die kleiner sind als die Position des ersten Frames.

Zugriffsfunktionen:

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

Benachrichtigungssignal:

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)

Notifier-Signal:

void targetChanged(Qt3DCore::QTransform *target)

targetName : QString

Enthält den Namen der Zieltransformation. Dies ist eine Komfort-Eigenschaft, die es einfacher macht, die Zieltransformation der Keyframe-Animation zuzuordnen. Der Name entspricht in der Regel dem Namen der übergeordneten Entität der Zieltransformation, muss dies jedoch nicht zwingend tun.

Zugriffsfunktionen:

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

Notifier-Signal:

void targetNameChanged(const QString &name)

Dokumentation der Member-Funktionen

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

Erstellt eine `QKeyframeAnimation` mit ` parent`.

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

Fügt am Ende der Animation ein neues „ keyframe “ hinzu. Das „ QTransform “ kann der Animation mehrfach hinzugefügt werden.

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

Gibt die Liste der Keyframes zurück.

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

Entfernt einen „ keyframe “ aus der Animation. Wenn derselbe „ QTransform “ mehrfach als Keyframe festgelegt wurde, werden alle Vorkommen entfernt.

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

Legt den „ keyframes “ der Animation fest. Alte Keyframes werden gelöscht.

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