- class QEasingCurve#
QEasingCurve
类提供用于控制动画的缓动曲线。 更多…新增于版本 4.6。
摘要#
方法#
def
__init__()
def
addTCBSegment()
def
amplitude()
def
customType()
def
__ne__()
def
__eq__()
def
overshoot()
定义
period()
定义
setPeriod()
定义
setType()
定义
swap()
定义
type()
注意:
此文档可能包含从 C++ 自动翻译到 Python 的代码段。我们始终欢迎对代码段翻译的贡献。如果您发现翻译有问题,您也可以通过在 https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述 #
警告:
本节包含自动从 C++ 翻译到 Python 的代码段,可能包含错误。
缓动曲线描述了一个控制 0 和 1 之间插值速度的函数。缓动曲线使值从一个过渡到另一个的过程比简单的恒定速度看起来更加自然。通常,
QEasingCurve
类与QVariantAnimation
和QPropertyAnimation
类一起使用,但也可以单独使用。它通常用于从零速度(加速)加速到零速度(减速)。加速和减速也可以在同一个缓动曲线中结合使用。为了计算插值的速度,缓动曲线提供函数
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
)。振幅访问权限适用于弹簧曲线,如弹性和弹跳曲线。改变振幅会改变曲线的高度。周期访问权限仅适用于弹性曲线,设置更长的周期会减慢弹跳的速率。只有具有“回飞弹”行为的曲线,例如InBack
、OutBack
、InOutBack
和OutInBack
,才有超调设置。这些曲线会超出终点并返回终点,类似于飞镖。缓动曲线示例包含
QEasingCurve
类型的样本,并让您修改曲线设置。- class Type#
缓动曲线的类型。
常量
描述
QEasingCurve.Linear
线性(t)函数的缓动曲线:速度恒定。
常量
描述
QEasingCurve.InQuad
二次(t^2)函数的缓动曲线:从零速度加速。
常量
描述
QEasingCurve.OutQuad
二次(t^2)函数的缓动曲线:减速到零速度。
常量
描述
QEasingCurve.InOutQuad
二次(t^2)函数的缓动曲线:加速到中间,然后减速。
常量
描述
QEasingCurve.OutInQuad
二次(t^2)函数的缓动曲线:减速到中间,然后加速。
常量
描述
QEasingCurve.InCubic
三次(t^3)函数的缓动曲线:从零速度加速。
常量
描述
QEasingCurve.OutCubic
三次(t^3)函数的缓动曲线:减速到零速度。
常量
描述
QEasingCurve.InOutCubic
三次(t^3)函数的缓动曲线:加速到中间,然后减速。
常量
描述
QEasingCurve.OutInCubic
三次(t^3)函数的缓动曲线:减速到中间,然后加速。
常量
描述
QEasingCurve.InQuart
四次(t^4)函数的缓动曲线:从零速度加速。
常量
描述
QEasingCurve.OutQuart
四次(t^4)函数的缓动曲线:减速到零速度。
常量
描述
QEasingCurve.InOutQuart
四次(t^4)函数的缓动曲线:加速到中间,然后减速。
常量
描述
QEasingCurve.OutInQuart
四次(t^4)函数的缓动曲线:减速到中间,然后加速。
常量
描述
QEasingCurve.InQuint
五次(t^5)函数缓动进入:从零速度加速。
常量
描述
QEasingCurve.OutQuint
五次(t^5)函数的缓动曲线:减速到零速度。
常量
描述
QEasingCurve.InOutQuint
五次(t^5)函数的缓动曲线:加速到中间,然后减速。
常量
描述
QEasingCurve.OutInQuint
五次(t^5)函数的缓动曲线:减速到中间,然后加速。
常量
描述
QEasingCurve.InSine
正弦函数(sin(t))的缓和曲线:从零速度加速。
常量
描述
QEasingCurve.OutSine
正弦函数(sin(t))的缓和曲线:减速至零速度。
常量
描述
QEasingCurve.InOutSine
正弦函数(sin(t))的缓和曲线:加速到中点,然后减速。
常量
描述
QEasingCurve.OutInSine
正弦函数(sin(t))的缓和曲线:减速到中点,然后加速。
常量
描述
QEasingCurve.InExpo
指数函数(2^t)的缓和曲线:从零速度加速。
常量
描述
QEasingCurve.OutExpo
指数函数(2^t)的缓和曲线:减速至零速度。
常量
描述
QEasingCurve.InOutExpo
指数函数(2^t)的缓和曲线:加速到中点,然后减速。
常量
描述
QEasingCurve.OutInExpo
指数函数(2^t)的缓和曲线:减速到中点,然后加速。
常量
描述
QEasingCurve.InCirc
圆形函数(sqrt(1-t^2))的缓和曲线:从零速度加速。
常量
描述
QEasingCurve.OutCirc
圆形函数(sqrt(1-t^2))的缓和曲线:减速至零速度。
常量
描述
QEasingCurve.InOutCirc
圆形函数(sqrt(1-t^2))的缓和曲线:加速到中点,然后减速。
常量
描述
QEasingCurve.OutInCirc
圆形函数(sqrt(1-t^2))的缓和曲线:减速到中点,然后加速。
常量
描述
QEasingCurve.InElastic
弹性函数(指数衰减的正弦波)的缓和曲线:从零速度加速。峰值振幅可以通过amplitude参数设置,衰减周期通过period参数设置。
常量
描述
QEasingCurve.OutElastic
弹性函数(指数衰减的正弦波)的缓和曲线:减速至零速度。峰值振幅可以通过amplitude参数设置,衰减周期通过period参数设置。
常量
描述
QEasingCurve.InOutElastic
弹性函数(指数衰减的正弦波)的缓和曲线:加速到中点,然后减速。
常量
描述
QEasingCurve.OutInElastic
弹性函数(指数衰减的正弦波)的缓和曲线:减速到中点,然后加速。
常量
描述
QEasingCurve.InBack
后仰(超射的立方函数:(s+1)*t^3 - s*t^2)缓和进入:从零速度加速。
常量
描述
QEasingCurve.OutBack
后仰(超射的立方函数:(s+1)*t^3 - s*t^2)缓和退出:减速至零速度。
常量
描述
QEasingCurve.InOutBack
后仰(超射的立方函数:(s+1)*t^3 - s*t^2)缓和进入/退出:加速到中点,然后减速。
常量
描述
QEasingCurve.OutInBack
后仰(超射的立方缓和:(s+1)*t^3 - s*t^2)缓和退出/进入:减速到中点,然后加速。
常量
描述
QEasingCurve.InBounce
反弹(指数衰减的抛物线反弹)函数的缓和曲线:从零速度加速。
常量
描述
QEasingCurve.OutBounce
反弹(指数衰减的抛物线反弹)函数的缓和曲线:从零速度减速。
常量
描述
QEasingCurve.InOutBounce
反弹(指数衰减的抛物线反弹)函数缓和进入/退出:加速到中点,然后减速。
常量
描述
QEasingCurve.OutInBounce
反弹(指数衰减的抛物线反弹)函数缓和退出/进入:减速到中点,然后加速。
常量
描述
QEasingCurve.BezierSpline
允许使用三次贝塞尔样条定义自定义缓和曲线
QEasingCurve.TCBSpline
允许使用TCB样条定义自定义缓和曲线
QEasingCurve.Custom
当用户使用
setCustomType()
指定了自定义曲线类型时返回。请注意,您不能使用此值调用setType()
,但type()
可以返回它。
- __init__(other)#
- 参数:
other –
QEasingCurve
构建
other
的副本。- __init__([type=QEasingCurve.Type.Linear])
- 参数:
type –
Type
构建指定
type
的缓动曲线。添加一个三次贝塞尔样条段的段以定义自定义缓动曲线。仅当
type()
是BezierSpline
时适用。注意,样条曲线隐式地从 (0.0, 0.0) 开始,必须以 (1.0, 1.0) 结束才能成为有效的缓动曲线。c1
和c2
是用于绘制曲线的控制点。endPoint
是曲线的终点。将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
,InOutElastic
或OutInElastic
的曲线)。- customType()#
- 返回类型:
对象
- __ne__(other)#
- 参数:
other –
QEasingCurve
- 返回类型:
布尔值
将此缓动曲线与
other
进行比较,并在它们不相等时返回true
。它还会比较曲线的属性。也见
operator==()
- __eq__(other)#
- 参数:
other –
QEasingCurve
- 返回类型:
布尔值
比较此缓动曲线与其他,如果它们相等则返回
true
。它还会比较曲线的属性。- overshoot()#
- 返回类型:
float
返回超调值。这并非对所有曲线类型都适用。它仅在
type()
是InBack
、OutBack
、InOutBack
或OutInBack
时适用。- period(#
- 返回类型:
float
返回周期。这并非对所有曲线类型都适用。它仅在
type()
是InElastic
、OutElastic
、InOutElastic
或OutInElastic
时适用。也见
- setAmplitude(amplitude)#
- 参数:
amplitude – float
将振幅设置为
amplitude
。这将设置弹跳或“弹簧”效果的振幅。数值越高,振幅越大。
也见
- setCustomType(arg__1)#
- 参数:
arg__1 – object
- setOvershoot(overshoot)#
- 参数:
overshoot – float
将超调设置为
overshoot
。0不产生超调,默认值1.70158产生10%的超调。
也见
- setPeriod(period)#
- 参数:
period – float
将周期设置为
period
。设置小的周期值将使曲线频率变高。大的周期值会使曲线频率变低。也见
设置缓动曲线的类型为
type
。也见
- swap(other)#
- 参数:
other –
QEasingCurve
与该曲线交换曲线
other
。这个操作非常快,并且永远不会失败。返回定义自定义缓动曲线的三次贝塞尔曲线。如果没有自定义贝塞尔缓动曲线,列表则为空。
返回缓动曲线的类型。
也见
- valueForProgress(progress)#
- 参数:
progress – float
- 返回类型:
float
返回在
progress
处的缓动曲线的有效进度。与progress
必须介于 0 到 1 之间的限制不同,返回的有效进度可以超出这些界限。例如,InBack
在函数开头将返回负值。