PySide6.QtCore.QEasingCurve

class QEasingCurve

QEasingCurve 类提供了用于控制动画的缓动曲线。更多

在版本4.6中添加。

概要

方法

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

警告

本节包含从C++自动翻译到Python的代码片段,可能包含错误。

缓动曲线描述了一个控制0到1之间插值速度的函数。缓动曲线使得从一个值到另一个值的过渡看起来比简单的恒定速度更自然。QEasingCurve类通常与QVariantAnimationQPropertyAnimation类一起使用,但也可以单独使用。它通常用于加速从零速度开始的插值(缓入)或减速到零速度(缓出)。缓入和缓出也可以组合在同一个缓动曲线中。

为了计算插值的速度,缓动曲线提供了函数 valueForProgress(),其中 progress 参数指定了插值的进度:0 是插值的起始值,1 是插值的结束值。返回值是插值的有效进度。如果对于所有输入值,返回值与输入值相同,则缓动曲线是线性曲线。这是默认行为。

例如,

easing = QEasingCurve(QEasingCurve.InOutQuad)
for t in range(0.0, 1.0):
    qWarning() << "Effective progress" << t << "is"
               << easing.valueForProgress(t)

将打印插值在0到1之间的有效进度。

当使用QPropertyAnimation时,相关的缓动曲线将用于控制从startValue到endValue之间的插值进度:

animation = QPropertyAnimation()
animation.setStartValue(0)
animation.setEndValue(1000)
animation.setDuration(1000)
animation.setEasingCurve(QEasingCurve.InOutQuad)

设置振幅、超调量或周期的能力取决于QEasingCurve类型。振幅访问适用于表现为弹簧的曲线,如弹性曲线和反弹曲线。改变振幅会改变曲线的高度。周期访问仅适用于弹性曲线,设置更高的周期会减慢反弹速度。只有具有“回旋镖”行为的曲线,如InBackOutBackInOutBackOutInBack,才有超调设置。这些曲线会在端点之外进行插值并返回到端点,类似于回旋镖的行为。

缓动曲线示例包含了QEasingCurve类型的样本,并允许您更改曲线设置。

class Type

缓动曲线的类型。

常量

描述

QEasingCurve.Linear

../../_images/qeasingcurve-linear.png

线性 (t) 函数的缓动曲线:速度是恒定的。

常量

描述

QEasingCurve.InQuad

../../_images/qeasingcurve-inquad.png

二次函数(t^2)的缓动曲线:从零速度加速。

常量

描述

QEasingCurve.OutQuad

../../_images/qeasingcurve-outquad.png

二次函数(t^2)的缓动曲线:减速至零速度。

常量

描述

QEasingCurve.InOutQuad

../../_images/qeasingcurve-inoutquad.png

二次函数(t^2)的缓动曲线:前半段加速,后半段减速。

常量

描述

QEasingCurve.OutInQuad

../../_images/qeasingcurve-outinquad.png

二次函数(t^2)的缓动曲线:先减速到一半,然后加速。

常量

描述

QEasingCurve.InCubic

../../_images/qeasingcurve-incubic.png

立方(t^3)函数的缓动曲线:从零速度加速。

常量

描述

QEasingCurve.OutCubic

../../_images/qeasingcurve-outcubic.png

三次函数(t^3)的缓动曲线:减速至零速度。

常量

描述

QEasingCurve.InOutCubic

../../_images/qeasingcurve-inoutcubic.png

三次函数(t^3)的缓动曲线:加速到一半,然后减速。

常量

描述

QEasingCurve.OutInCubic

../../_images/qeasingcurve-outincubic.png

立方(t^3)函数的缓动曲线:前半段减速,然后加速。

常量

描述

QEasingCurve.InQuart

../../_images/qeasingcurve-inquart.png

四次函数(t^4)的缓动曲线:从零速度加速。

常量

描述

QEasingCurve.OutQuart

../../_images/qeasingcurve-outquart.png

四次函数(t^4)的缓动曲线:减速至零速度。

常量

描述

QEasingCurve.InOutQuart

../../_images/qeasingcurve-inoutquart.png

四次函数(t^4)的缓动曲线:加速到一半,然后减速。

常量

描述

QEasingCurve.OutInQuart

../../_images/qeasingcurve-outinquart.png

四次函数(t^4)的缓动曲线:前半段减速,然后加速。

常量

描述

QEasingCurve.InQuint

../../_images/qeasingcurve-inquint.png

五次方(t^5)缓入的缓动曲线:从零速度加速。

常量

描述

QEasingCurve.OutQuint

../../_images/qeasingcurve-outquint.png

五次函数(t^5)的缓动曲线:减速至零速度。

常量

描述

QEasingCurve.InOutQuint

../../_images/qeasingcurve-inoutquint.png

五次函数(t^5)的缓动曲线:前半段加速,后半段减速。

常量

描述

QEasingCurve.OutInQuint

../../_images/qeasingcurve-outinquint.png

五次函数(t^5)的缓动曲线:前半段减速,后半段加速。

常量

描述

QEasingCurve.InSine

../../_images/qeasingcurve-insine.png

正弦函数(sin(t))的缓动曲线:从零速度加速。

常量

描述

QEasingCurve.OutSine

../../_images/qeasingcurve-outsine.png

正弦函数(sin(t))的缓动曲线:减速至零速度。

常量

描述

QEasingCurve.InOutSine

../../_images/qeasingcurve-inoutsine.png

正弦函数(sin(t))的缓动曲线:前半段加速,后半段减速。

常量

描述

QEasingCurve.OutInSine

../../_images/qeasingcurve-outinsine.png

正弦函数(sin(t))的缓动曲线:前半段减速,后半段加速。

常量

描述

QEasingCurve.InExpo

../../_images/qeasingcurve-inexpo.png

指数(2^t)函数的缓动曲线:从零速度加速。

常量

描述

QEasingCurve.OutExpo

../../_images/qeasingcurve-outexpo.png

指数(2^t)函数的缓动曲线:减速至零速度。

常量

描述

QEasingCurve.InOutExpo

../../_images/qeasingcurve-inoutexpo.png

指数(2^t)函数的缓动曲线:前半段加速,后半段减速。

常量

描述

QEasingCurve.OutInExpo

../../_images/qeasingcurve-outinexpo.png

指数(2^t)函数的缓动曲线:前半段减速,然后加速。

常量

描述

QEasingCurve.InCirc

../../_images/qeasingcurve-incirc.png

用于圆形(sqrt(1-t^2))函数的缓动曲线:从零速度加速。

常量

描述

QEasingCurve.OutCirc

../../_images/qeasingcurve-outcirc.png

圆形(sqrt(1-t^2))函数的缓动曲线:减速至零速度。

常量

描述

QEasingCurve.InOutCirc

../../_images/qeasingcurve-inoutcirc.png

圆形(sqrt(1-t^2))函数的缓动曲线:前半段加速,后半段减速。

常量

描述

QEasingCurve.OutInCirc

../../_images/qeasingcurve-outincirc.png

圆形(sqrt(1-t^2))函数的缓动曲线:前半段减速,后半段加速。

常量

描述

QEasingCurve.InElastic

../../_images/qeasingcurve-inelastic.png

弹性(指数衰减正弦波)函数的缓动曲线:从零速度加速。峰值幅度可以通过amplitude参数设置,衰减周期可以通过period参数设置。

常量

描述

QEasingCurve.OutElastic

../../_images/qeasingcurve-outelastic.png

弹性(指数衰减正弦波)函数的缓动曲线:减速至零速度。峰值幅度可以通过amplitude参数设置,衰减周期可以通过period参数设置。

常量

描述

QEasingCurve.InOutElastic

../../_images/qeasingcurve-inoutelastic.png

弹性(指数衰减正弦波)函数的缓动曲线:前半段加速,然后减速。

常量

描述

QEasingCurve.OutInElastic

../../_images/qeasingcurve-outinelastic.png

弹性(指数衰减正弦波)函数的缓动曲线:前半段减速,然后加速。

常量

描述

QEasingCurve.InBack

../../_images/qeasingcurve-inback.png

用于回退(超调三次函数:(s+1)*t^3 - s*t^2)缓入的缓动曲线:从零速度加速。

常量

描述

QEasingCurve.OutBack

../../_images/qeasingcurve-outback.png

用于后退(超调三次函数:(s+1)*t^3 - s*t^2)的缓动曲线:减速至零速度。

常量

描述

QEasingCurve.InOutBack

../../_images/qeasingcurve-inoutback.png

用于回弹(超调三次函数:(s+1)*t^3 - s*t^2)的缓入/缓出曲线:加速到一半,然后减速。

常量

描述

QEasingCurve.OutInBack

../../_images/qeasingcurve-outinback.png

用于回弹(超调三次缓动:(s+1)*t^3 - s*t^2)的缓动曲线,缓出/缓入:前半段减速,然后加速。

常量

描述

QEasingCurve.InBounce

../../_images/qeasingcurve-inbounce.png

弹跳(指数衰减抛物线弹跳)函数的缓动曲线:从零速度加速。

常量

描述

QEasingCurve.OutBounce

../../_images/qeasingcurve-outbounce.png

弹跳(指数衰减抛物线弹跳)函数的缓动曲线:从零速度减速。

常量

描述

QEasingCurve.InOutBounce

../../_images/qeasingcurve-inoutbounce.png

弹跳(指数衰减抛物线弹跳)函数的缓动曲线,缓入/缓出:加速到一半,然后减速。

常量

描述

QEasingCurve.OutInBounce

../../_images/qeasingcurve-outinbounce.png

弹跳(指数衰减抛物线弹跳)函数的缓动曲线,用于缓出/缓入:前半段减速,然后加速。

常量

描述

QEasingCurve.BezierSpline

允许使用三次贝塞尔样条定义自定义缓动曲线

QEasingCurve.TCBSpline

允许使用TCB样条定义自定义缓动曲线

QEasingCurve.Custom

如果用户使用setCustomType()指定了自定义曲线类型,则返回此值。请注意,您不能使用此值调用setType(),但type()可以返回它。

__init__([type=QEasingCurve.Type.Linear])
Parameters:

类型Type

构造给定type的缓动曲线。

__init__(other)
Parameters:

其他QEasingCurve

构造一个other的副本。

addCubicBezierSegment(c1, c2, endPoint)
Parameters:

添加一段三次贝塞尔样条来定义自定义的缓动曲线。仅当type()BezierSpline时适用。请注意,样条隐式地从(0.0, 0.0)开始,并且必须结束于(1.0, 1.0)才能成为有效的缓动曲线。c1c2是用于绘制曲线的控制点。endPoint是曲线的终点。

addTCBSegment(nextPoint, t, c, b)
Parameters:
  • nextPointQPointF

  • t – 浮点数

  • c – 浮点数

  • b – 浮点数

添加一段TCB贝塞尔样条来定义自定义的缓动曲线。仅当type()TCBSpline时适用。样条必须明确从(0.0, 0.0)开始,并在(1.0, 1.0)结束,才能成为有效的缓动曲线。张力t改变切向量的长度。连续性c改变切线之间的变化锐度。偏置b改变切向量的方向。nextPoint是采样位置。所有三个参数的有效范围在-1到1之间,并定义控制点的切线。如果所有三个参数都为0,则生成的样条是Catmull-Rom样条。起点和终点始终具有-1和1的偏置,因为外部切线未定义。

amplitude()
Return type:

浮点数

返回振幅。这不适用于所有曲线类型。它仅适用于反弹和弹性曲线(type()InBounceOutBounceInOutBounceOutInBounceInElasticOutElasticInOutElasticOutInElastic 的曲线)。

另请参阅

setAmplitude()

customType()
Return type:

对象

__ne__(rhs)
Parameters:

rhsQEasingCurve

Return type:

布尔

比较缓动曲线 lhsrhs,如果它们不相等则返回 true;否则返回 false。它还会比较曲线的属性。

另请参阅

operator==()

__eq__(rhs)
Parameters:

rhsQEasingCurve

Return type:

布尔

比较缓动曲线 lhsrhs,如果它们相等则返回 true;否则返回 false。它还会比较曲线的属性。

overshoot()
Return type:

浮点数

返回超调量。这不适用于所有曲线类型。仅当type()InBackOutBackInOutBackOutInBack时适用。

另请参阅

setOvershoot()

period()
Return type:

浮点数

返回周期。这不适用于所有曲线类型。仅当type()InElasticOutElasticInOutElasticOutInElastic时才适用。

另请参阅

setPeriod()

setAmplitude(amplitude)
Parameters:

振幅 – 浮点数

将振幅设置为 amplitude

这将设置弹跳的幅度或弹性“弹簧”效果的幅度。数值越高,幅度越大。

另请参阅

amplitude()

setCustomType(callable)
Parameters:

callable – 对象

setOvershoot(overshoot)
Parameters:

overshoot – 浮点数

将超调量设置为 overshoot

0 不会产生超调,默认值 1.70158 会产生 10% 的超调。

另请参阅

overshoot()

setPeriod(period)
Parameters:

period – 浮点数

将周期设置为period。设置一个小的周期值将使曲线的频率变高。一个大的周期将使频率变低。

另请参阅

period()

setType(type)
Parameters:

类型Type

设置缓动曲线的类型为 type

另请参阅

type()

swap(other)
Parameters:

其他QEasingCurve

将曲线 other 与此曲线交换。此操作非常快速且永远不会失败。

toCubicSpline()
Return type:

QPointF的列表

返回定义自定义缓动曲线的cubicBezierSpline。如果缓动曲线没有自定义的贝塞尔缓动曲线,则列表为空。

type()
Return type:

类型

返回缓动曲线的类型。

另请参阅

setType()

valueForProgress(progress)
Parameters:

progress – 浮点数

Return type:

浮点数

返回在progress处的缓动曲线的有效进度。虽然progress必须在0到1之间,但返回的有效进度可以超出这些范围。例如,InBack在函数开始时将返回负值。