Qt3DAnimation::QKeyframeAnimation Class

class Qt3DAnimation::QKeyframeAnimation

QTransform 上实现简单关键帧动画的类 ... 更多...

头文件: #include <QKeyframeAnimation>
CMake: find_package(Qt6 REQUIRED COMPONENTS 3danimation)
target_link_libraries(mytarget PRIVATE Qt6::3danimation)
qmake: QT += 3danimation
在 QML 中: KeyframeAnimation
继承: Qt3DAnimation::QAbstractAnimation
状态:已废弃

公共类型

enum RepeatMode { None, Constant, Repeat }

属性

公共功能

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

公共插槽

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)

信号

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)

详细说明

Qt3DAnimation::QKeyframeAnimation 类实现了简单的关键帧动画,可用于制作动画QTransform 。关键帧由多个定时 QTransforms 组成,这些 QTransforms 经过内插后应用于目标QTransformQEasingCurve 用于在关键帧之间控制内插器。当设置给 QKeyframeAnimation 的位置低于或高于关键帧位置中定义的值时,可设置RepeatMode

成员类型文档

enum QKeyframeAnimation::RepeatMode

该枚举用于指定如何处理关键帧值之外的位置值。

常量说明
Qt3DAnimation::QKeyframeAnimation::None0动画不应用于目标变换。
Qt3DAnimation::QKeyframeAnimation::Constant1使用边缘关键帧值。
Qt3DAnimation::QKeyframeAnimation::Repeat2动画重复。

属性文档

easing : QEasingCurve

保存关键帧之间插值器的缓和曲线。

访问功能

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

通知信号

void easingChanged(const QEasingCurve &easing)

endMode : RepeatMode

对大于上一帧位置的位置值保持重复模式。

访问功能:

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

通知信号:

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

framePositions : QList<float>

保存关键帧的位置。列表中的每个位置都指定了具有相同索引的相应关键帧的位置。数值必须以升序排列。数值可以是正数或负数,没有预定义单位。

访问功能

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

通知信号

void framePositionsChanged(const QList<float> &positions)

startMode : RepeatMode

对小于第一帧位置的位置值保持重复模式。

访问功能:

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

通知信号:

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

target : Qt3DCore::QTransform*

保存动画应用的目标QTransform

访问功能:

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

通知信号:

void targetChanged(Qt3DCore::QTransform *target)

targetName : QString

目标变换的名称。这是一个方便的属性,可以更容易地将目标变换与关键帧动画相匹配。该名称通常与目标变换的父实体名称相同,但并非必须如此。

访问功能:

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

通知信号:

void targetNameChanged(const QString &name)

成员函数 文档

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

parent 构建一个 QKeyframeAnimation。

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

在动画结尾处添加新的keyframeQTransform 可多次添加到动画中。

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

返回关键帧列表。

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

从动画中删除keyframe 。如果同一个QTransform 被多次设置为关键帧,则所有出现的关键帧都会被移除。

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

设置动画的keyframes 。旧的关键帧将被清除。

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