QEasingCurve Class Reference

[QtCore module]

该QEasingCurve类提供​​用于控制动画的缓和曲线。More…

Types

  • enum Type { Linear, InQuad, OutQuad, InOutQuad, ..., Custom }

Methods

  • __init__ (self, Type type = QEasingCurve.Linear)
  • __init__ (self, QEasingCurve other)
  • float amplitude (self)
  • callable customType (self)
  • float overshoot (self)
  • float period (self)
  • setAmplitude (self, float amplitude)
  • setCustomType (self, callable func)
  • setOvershoot (self, float overshoot)
  • setPeriod (self, float period)
  • setType (self, Type type)
  • Type type (self)
  • float valueForProgress (self, float progress)

Special Methods

  • bool __eq__ (self, QEasingCurve other)
  • bool __ne__ (self, QEasingCurve other)

Detailed Description

该QEasingCurve类提供​​用于控制动画的缓和曲线。

缓和曲线描述的功能,其控制0和1之间的内插的速度应如何。缓和曲线允许从一个值到另一个过渡显得更自然不是一个简单的恒定速度将允许。该QEasingCurve类通常是在与结合使用QVariantAnimationQPropertyAnimation类,但可以使用其本身。它通常被用来从零速度(缓和)加速插或减速到零速度(缓出) 。缓解和减轻了,也可以在同一个缓动曲线相结合。

来计算内插的速度,缓和曲线提供的功能valueForProgress( ),其中该progress参数指定插值的进度: 0是插值的起始值, 1为插值的终值。返回的值是插值的有效进展。如果返回值是一样的输入值的所有输入值的缓动曲线是线性曲线。这是默认行为。

例如,

  1. QEasingCurve easing(QEasingCurve.InOutQuad);
  2. for([qreal]($docs-index.htm#qreal-typedef) t = 0.0; t < 1.0; t+=0.1)
  3. qWarning() << "Effective progress" << t << " is
  4. << easing.valueForProgress(t);

将打印0和1之间的内插的有效进展。

当使用一个QPropertyAnimation时,相关的缓和曲线将被用于控制起始值和endValue值之间的内插的进展:

  1. [QPropertyAnimation]($docs-qpropertyanimation.html) animation;
  2. animation.setStartValue(0);
  3. animation.setEndValue(1000);
  4. animation.setDuration(1000);
  5. animation.setEasingCurve(QEasingCurve.InOutQuad);

设定的幅度,过冲,期间或能力取决于QEasingCurve类型。振幅接入服务提供给表现为弹簧等弹性及反弹曲线的曲线。变化的幅度变化的曲线的高度。访问期间只适用于弹性曲线和设置较高的周期减缓反弹的速度。只有具有“自食其果”的行为,如曲线InBackOutBackInOutBackOutInBack有过冲的设置。这些曲线将插以外的终点,并返回到终点,作用类似于一个飞去来器。

Easing Curves Example包含QEasingCurve类型的样品并允许您更改曲线设置。


Type Documentation

  1. QEasingCurve.Type

缓和曲线的类型。

Constant Value Description
QEasingCurve.Linear 0 QEasingCurve Class Reference - 图1

缓和曲线的线性( t)的功能:速度是恒定的。 | | QEasingCurve.InQuad | 1 | QEasingCurve Class Reference - 图2 缓和曲线二次(T ^ 2 )功能:从零速度加速。 | | QEasingCurve.OutQuad | 2 | QEasingCurve Class Reference - 图3 缓和曲线二次(T ^ 2 )功能:减速至零速度。 | | QEasingCurve.InOutQuad | 3 | QEasingCurve Class Reference - 图4 缓和曲线二次(T ^ 2 )功能:加速至一半,然后再减速。 | | QEasingCurve.OutInQuad | 4 | QEasingCurve Class Reference - 图5 缓和曲线二次(T ^ 2 )功能:减速至一半,然后再加速。 | | QEasingCurve.InCubic | 5 | QEasingCurve Class Reference - 图6 缓和曲线立方(T ^ 3 )功能:从零速度加速。 | | QEasingCurve.OutCubic | 6 | QEasingCurve Class Reference - 图7 缓和曲线立方(T ^ 3 )功能:减速至零速度。 | | QEasingCurve.InOutCubic | 7 | QEasingCurve Class Reference - 图8 缓和曲线立方(T ^ 3 )功能:加速至一半,然后再减速。 | | QEasingCurve.OutInCubic | 8 | QEasingCurve Class Reference - 图9 缓和曲线立方(T ^ 3 )功能:减速,直到一半,然后再加速。 | | QEasingCurve.InQuart | 9 | QEasingCurve Class Reference - 图10 缓和曲线四次(T ^ 4 )功能:从零速度加速。 | | QEasingCurve.OutQuart | 10 | QEasingCurve Class Reference - 图11 缓和曲线四次(T ^ 4 )功能:减速至零速度。 | | QEasingCurve.InOutQuart | 11 | QEasingCurve Class Reference - 图12 缓和曲线四次(T ^ 4 )功能:加速至一半,然后再减速。 | | QEasingCurve.OutInQuart | 12 | QEasingCurve Class Reference - 图13 缓和曲线四次(T ^ 4 )功能:减速,直到一半,然后再加速。 | | QEasingCurve.InQuint | 13 | QEasingCurve Class Reference - 图14 缓和曲线五次(T ^ 5 )宽松:从零速度加速。 | | QEasingCurve.OutQuint | 14 | QEasingCurve Class Reference - 图15 缓和曲线五次(T ^ 5 )功能:减速至零速度。 | | QEasingCurve.InOutQuint | 15 | QEasingCurve Class Reference - 图16 缓和曲线五次(T ^ 5 )功能:加速至一半,然后再减速。 | | QEasingCurve.OutInQuint | 16 | QEasingCurve Class Reference - 图17 缓和曲线五次(T ^ 5 )功能:减速,直到一半,然后再加速。 | | QEasingCurve.InSine | 17 | QEasingCurve Class Reference - 图18 缓动曲线为正弦(罪( t))的功能:从零速度加速。 | | QEasingCurve.OutSine | 18 | QEasingCurve Class Reference - 图19 缓动曲线为正弦(罪( t))的功能:从零速度减速。 | | QEasingCurve.InOutSine | 19 | QEasingCurve Class Reference - 图20 缓动曲线为正弦(罪( t))的功能:加速至一半,然后再减速。 | | QEasingCurve.OutInSine | 20 | QEasingCurve Class Reference - 图21 缓动曲线为正弦(罪( t))的功能:减速,直到一半,然后再加速。 | | QEasingCurve.InExpo | 21 | QEasingCurve Class Reference - 图22 缓和曲线的指数( 2 ^ t)的功能:从零速度加速。 | | QEasingCurve.OutExpo | 22 | QEasingCurve Class Reference - 图23 缓和曲线的指数( 2 ^ t)的功能:从零速度减速。 | | QEasingCurve.InOutExpo | 23 | QEasingCurve Class Reference - 图24 缓和曲线的指数( 2 ^ t)的功能:加速至一半,然后再减速。 | | QEasingCurve.OutInExpo | 24 | QEasingCurve Class Reference - 图25 缓和曲线的指数( 2 ^ t)的功能:减速,直到一半,然后再加速。 | | QEasingCurve.InCirc | 25 | QEasingCurve Class Reference - 图26 缓和曲线的圆( SQRT ( 1 -T ^ 2 ) )功能:从零速度加速。 | | QEasingCurve.OutCirc | 26 | QEasingCurve Class Reference - 图27 缓和曲线的圆( SQRT ( 1 -T ^ 2 ) )功能:从零速度减速。 | | QEasingCurve.InOutCirc | 27 | QEasingCurve Class Reference - 图28 缓和曲线的圆( SQRT ( 1 -T ^ 2 ) )功能:加速至一半,然后再减速。 | | QEasingCurve.OutInCirc | 28 | QEasingCurve Class Reference - 图29 缓和曲线的圆( SQRT ( 1 -T ^ 2 ) )功能:减速至一半,然后再加速。 | | QEasingCurve.InElastic | 29 | QEasingCurve Class Reference - 图30 缓和曲线的弹性(指数衰减正弦波)功能:从零速度加速。峰值幅度可与设置amplitude参数和衰减的通过期间period参数。 | | QEasingCurve.OutElastic | 30 | QEasingCurve Class Reference - 图31 缓和曲线的弹性(指数衰减正弦波)功能:从零速度减速。峰值幅度可与设置amplitude参数和衰减的通过期间period参数。 | | QEasingCurve.InOutElastic | 31 | QEasingCurve Class Reference - 图32 缓和曲线的弹性(指数衰减正弦波)功能:加速至一半,然后再减速。 | | QEasingCurve.OutInElastic | 32 | QEasingCurve Class Reference - 图33 缓和曲线的弹性(指数衰减正弦波)功能:减速至一半,然后再加速。 | | QEasingCurve.InBack | 33 | QEasingCurve Class Reference - 图34 缓和曲线的背(过冲三次函数: ( S +1 ) T ^ 3 - S T ^ 2 )缓和:从零速度加速。 | | QEasingCurve.OutBack | 34 | QEasingCurve Class Reference - 图35 缓和曲线的背(过冲三次函数: ( S +1 ) T ^ 3 - S T ^ 2 )缓出:减速至零速度。 | | QEasingCurve.InOutBack | 35 | QEasingCurve Class Reference - 图36 缓和曲线的背(过冲三次函数: ( S +1 ) T ^ 3 - S T ^ 2 )缓解输入/输出:加速,直到一半,然后再减速。 | | QEasingCurve.OutInBack | 36 | QEasingCurve Class Reference - 图37 缓和曲线的背部(立方过度宽松: ( S +1 ) T ^ 3 - S T ^ 2 )缓和输出/输入:减速至一半,然后再加速。 | | QEasingCurve.InBounce | 37 | QEasingCurve Class Reference - 图38 缓和曲线反弹(指数衰减的抛物线反弹)功能:从零速度加速。 | | QEasingCurve.OutBounce | 38 | QEasingCurve Class Reference - 图39 缓和曲线反弹(指数衰减的抛物线反弹)功能:从零速度减速。 | | QEasingCurve.InOutBounce | 39 | QEasingCurve Class Reference - 图40 缓和曲线反弹(指数衰减的抛物线反弹)功能缓解输入/输出:加速至一半,然后再减速。 | | QEasingCurve.OutInBounce | 40 | QEasingCurve Class Reference - 图41 缓和曲线反弹(指数衰减的抛物线反弹)函数退出宽松政策/中:减速,直到一半,然后再加速。 | | QEasingCurve.Custom | 45 | 如果用户指定了一个自定义的曲线类型,这是返回setCustomType( ) 。请注意,您不能打电话setType( )与该值,但type( )可以返回它。 |


Method Documentation

  1. QEasingCurve.__init__ (self, Type type = QEasingCurve.Linear)

构造给定的缓动曲线type

  1. QEasingCurve.__init__ (self, QEasingCurve other)

构建副本other

  1. float QEasingCurve.amplitude (self)

返回的幅度。这并不适用于所有类型的曲线。它仅适用于弹跳和弹性曲线曲线(type( )QEasingCurve.InBounceQEasingCurve.OutBounceQEasingCurve.InOutBounceQEasingCurve.OutInBounceQEasingCurve.InElasticQEasingCurve.OutElasticQEasingCurve.InOutElastic or QEasingCurve.OutInElastic) 。

See also setAmplitude( ) 。

  1. callable QEasingCurve.customType (self)

返回的函数指针的定义缓动曲线。如果type( )不返回QEasingCurve.Custom,这个函数将返回0 。

See also setCustomType( ) 。

  1. float QEasingCurve.overshoot (self)

返回过冲。这并不适用于所有类型的曲线。它仅适用type()是QEasingCurve.InBackQEasingCurve.OutBackQEasingCurve.InOutBack or QEasingCurve.OutInBack

See also setOvershoot( ) 。

  1. float QEasingCurve.period (self)

返回的时间。这并不适用于所有类型的曲线。它仅适用type()是QEasingCurve.InElasticQEasingCurve.OutElasticQEasingCurve.InOutElastic or QEasingCurve.OutInElastic

See also setPeriod( ) 。

  1. QEasingCurve.setAmplitude (self, float amplitude)

设定的幅度以amplitude

这将设置反弹或弹性“弹簧”效应振幅的振幅。该数字越高,则振幅为高。

See also amplitude( ) 。

  1. QEasingCurve.setCustomType (self, callable func)

设置由用户在函数定义的自定义缓动曲线func。该函数的签名是QREAL myEasingFunction ( QREAL进步),其中progress和返回值被认为是0和1之间被归一化。 (在某些情况下的返回值可以是在那个范围外)调用此函数之后type( )将返回QEasingCurve.Customfunc不能为零。

See also customType()和valueForProgress( ) 。

  1. QEasingCurve.setOvershoot (self, float overshoot)

设置超调量overshoot

0不产生过冲,以及1.70158默认值会产生10%的过冲。

See also overshoot( ) 。

  1. QEasingCurve.setPeriod (self, float period)

设置期间period。设置一个小的时间值将赋予曲线的高频。一个大周期将会给它一个小的频率。

See also period( ) 。

  1. QEasingCurve.setType (self, Type type)

设置缓和曲线的类型type

See also type( ) 。

  1. Type QEasingCurve.type (self)

[

返回缓和曲线的类型。

]($docs-qeasingcurve.html#Type-enum)

See also setType( ) 。

  1. float QEasingCurve.valueForProgress (self, float progress)

在返回的缓动曲线的有效进展progress。而progress必须在0和1之间,返回的有效进展可以是那些界限之外。例如,QEasingCurve.InBack将在函数开头返回负值。

  1. bool QEasingCurve.__eq__ (self, QEasingCurve other)
  1. bool QEasingCurve.__ne__ (self, QEasingCurve other)