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 经过内插后应用于目标QTransform 。QEasingCurve 用于在关键帧之间控制内插器。当设置给 QKeyframeAnimation 的位置低于或高于关键帧位置中定义的值时,可设置RepeatMode 。
成员类型文档
enum QKeyframeAnimation::RepeatMode
该枚举用于指定如何处理关键帧值之外的位置值。
常量 | 值 | 说明 |
---|---|---|
Qt3DAnimation::QKeyframeAnimation::None | 0 | 动画不应用于目标变换。 |
Qt3DAnimation::QKeyframeAnimation::Constant | 1 | 使用边缘关键帧值。 |
Qt3DAnimation::QKeyframeAnimation::Repeat | 2 | 动画重复。 |
属性文档
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)
在动画结尾处添加新的keyframe 。QTransform 可多次添加到动画中。
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.