Qt3DAnimation::QKeyframeAnimation Class
class Qt3DAnimation::QKeyframeAnimation一个实现简单关键帧动画的类,用于QTransform 。更多内容...
| 标题: | #include <qkeyframeanimation.h> |
| 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 。旧的关键帧将被清除。
© 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.