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__(other)#
参数:

otherQEasingCurve

构建 other 的副本。

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

typeType

构建指定 type 的缓动曲线。

addCubicBezierSegment(c1, c2, endPoint)#
参数:

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

addTCBSegment(nextPoint, t, c, b)#
参数:
  • nextPointQPointF

  • t – float

  • c – float

  • b – float

将TCB贝塞尔样条的一段添加到定义自定义缓动曲线。仅在 type()TCBSpline 时适用。样条必须从(0.0, 0.0)明确起始,并以(1.0, 1.0)结束,才被视为有效的缓动曲线。张力 t 改变切线向量的长度。连续性 c 改变切线之间变化的锐度。偏差 b 改变切线向量的方向。《nextPoint》是样本位置。所有三个参数均在-1和1之间有效,并定义了控制点的切线。如果所有三个参数都为0,则得到的样条是Crittall-Rom样条。由于外部切线未定义,起点和终点总有-1和1的偏差。

amplitude()#
返回类型:

float

返回幅度。这不是所有曲线类型都适用的。仅适用于回弹和弹性曲线(type()InBounce , OutBounce , InOutBounce , OutInBounce , InElastic , OutElastic , InOutElasticOutInElastic 的曲线)。

customType()#
返回类型:

对象

__ne__(other)#
参数:

otherQEasingCurve

返回类型:

布尔值

将此缓动曲线与 other 进行比较,并在它们不相等时返回 true。它还会比较曲线的属性。

也见

operator==()

__eq__(other)#
参数:

otherQEasingCurve

返回类型:

布尔值

比较此缓动曲线与其他,如果它们相等则返回true。它还会比较曲线的属性。

overshoot()#
返回类型:

float

返回超调值。这并非对所有曲线类型都适用。它仅在type()InBackOutBackInOutBackOutInBack时适用。

period(#
返回类型:

float

返回周期。这并非对所有曲线类型都适用。它仅在type()InElasticOutElasticInOutElasticOutInElastic时适用。

也见

setPeriod()

setAmplitude(amplitude)#
参数:

amplitude – float

将振幅设置为amplitude

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

也见

amplitude()

setCustomType(arg__1)#
参数:

arg__1 – object

setOvershoot(overshoot)#
参数:

overshoot – float

将超调设置为overshoot

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

也见

overshoot()

setPeriod(period)#
参数:

period – float

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

也见

period()

setType(type)#
参数:

typeType

设置缓动曲线的类型为 type

也见

type()

swap(other)#
参数:

otherQEasingCurve

与该曲线交换曲线 other。这个操作非常快,并且永远不会失败。

toCubicSpline()#
返回类型:

. QPointF 列表

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

type()#
返回类型:

类型

返回缓动曲线的类型。

也见

setType()

valueForProgress(progress)#
参数:

progress – float

返回类型:

float

返回在 progress 处的缓动曲线的有效进度。与 progress 必须介于 0 到 1 之间的限制不同,返回的有效进度可以超出这些界限。例如,InBack 在函数开头将返回负值。