🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# QEasingCurve Class Reference ## [[QtCore](index.htm) module] 该QEasingCurve类提供​​用于控制动画的缓和曲线。[More...](#details) ### 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类通常是在与结合使用[QVariantAnimation](qvariantanimation.html)和[QPropertyAnimation](qpropertyanimation.html)类,但可以使用其本身。它通常被用来从零速度(缓和)加速插或减速到零速度(缓出) 。缓解和减轻了,也可以在同一个缓动曲线相结合。 来计算内插的速度,缓和曲线提供的功能[valueForProgress](qeasingcurve.html#valueForProgress)( ),其中该_progress_参数指定插值的进度: 0是插值的起始值, 1为插值的终值。返回的值是插值的有效进展。如果返回值是一样的输入值的所有输入值的缓动曲线是线性曲线。这是默认行为。 例如, ``` QEasingCurve easing(QEasingCurve.InOutQuad); for([qreal](index.htm#qreal-typedef) t = 0.0; t < 1.0; t+=0.1) qWarning() << "Effective progress" << t << " is << easing.valueForProgress(t); ``` 将打印0和1之间的内插的有效进展。 当使用一个[QPropertyAnimation](qpropertyanimation.html)时,相关的缓和曲线将被用于控制起始值和endValue值之间的内插的进展: ``` [QPropertyAnimation](qpropertyanimation.html) animation; animation.setStartValue(0); animation.setEndValue(1000); animation.setDuration(1000); animation.setEasingCurve(QEasingCurve.InOutQuad); ``` 设定的幅度,过冲,期间或能力取决于QEasingCurve类型。振幅接入服务提供给表现为弹簧等弹性及反弹曲线的曲线。变化的幅度变化的曲线的高度。访问期间只适用于弹性曲线和设置较高的周期减缓反弹的速度。只有具有“自食其果”的行为,如曲线[InBack](qeasingcurve.html#Type-enum),[OutBack](qeasingcurve.html#Type-enum),[InOutBack](qeasingcurve.html#Type-enum)和[OutInBack](qeasingcurve.html#Type-enum)有过冲的设置。这些曲线将插以外的终点,并返回到终点,作用类似于一个飞去来器。 该[Easing Curves Example](index.htm)包含QEasingCurve类型的样品并允许您更改曲线设置。 * * * ## Type Documentation ``` QEasingCurve.Type ``` 缓和曲线的类型。 | Constant | Value | Description | | --- | --- | --- | | `QEasingCurve.Linear` | `0` | ![](https://img.kancloud.cn/70/3b/703b844474c30bde1da996523d0ae699_128x128.png) 缓和曲线的线性( t)的功能:速度是恒定的。 | | `QEasingCurve.InQuad` | `1` | ![](https://img.kancloud.cn/f6/9b/f69bbd719fb5cfa72559aaa01102a158_128x128.png) 缓和曲线二次(T ^ 2 )功能:从零速度加速。 | | `QEasingCurve.OutQuad` | `2` | ![](https://img.kancloud.cn/7a/90/7a90fa9613e0a1fc352f950be92b391d_128x128.png) 缓和曲线二次(T ^ 2 )功能:减速至零速度。 | | `QEasingCurve.InOutQuad` | `3` | ![](https://img.kancloud.cn/c5/6b/c56b3cf4a93424ca8c00199a7e5b17b6_128x128.png) 缓和曲线二次(T ^ 2 )功能:加速至一半,然后再减速。 | | `QEasingCurve.OutInQuad` | `4` | ![](https://img.kancloud.cn/09/52/09520111c2a5f016ce2a89bf9f9df7c5_128x128.png) 缓和曲线二次(T ^ 2 )功能:减速至一半,然后再加速。 | | `QEasingCurve.InCubic` | `5` | ![](https://img.kancloud.cn/b7/8d/b78d3ebf2a295a0cc99e359f4c4bfc2c_128x128.png) 缓和曲线立方(T ^ 3 )功能:从零速度加速。 | | `QEasingCurve.OutCubic` | `6` | ![](https://img.kancloud.cn/fe/a5/fea59e77d4596edbb538cf87edb176b6_128x128.png) 缓和曲线立方(T ^ 3 )功能:减速至零速度。 | | `QEasingCurve.InOutCubic` | `7` | ![](https://img.kancloud.cn/65/c2/65c2f64be7e041143778cef542fe7867_128x128.png) 缓和曲线立方(T ^ 3 )功能:加速至一半,然后再减速。 | | `QEasingCurve.OutInCubic` | `8` | ![](https://img.kancloud.cn/3c/96/3c96eb4238ff29537dea6c61696967d1_128x128.png) 缓和曲线立方(T ^ 3 )功能:减速,直到一半,然后再加速。 | | `QEasingCurve.InQuart` | `9` | ![](https://img.kancloud.cn/66/9a/669affbfdd7bf1a1c619d4f7021766ae_128x128.png) 缓和曲线四次(T ^ 4 )功能:从零速度加速。 | | `QEasingCurve.OutQuart` | `10` | ![](https://img.kancloud.cn/55/41/554124fc00f4c6efe4b8fab23085cd87_128x128.png) 缓和曲线四次(T ^ 4 )功能:减速至零速度。 | | `QEasingCurve.InOutQuart` | `11` | ![](https://img.kancloud.cn/1e/93/1e936f772c9b8515e7d6b5f76231c2a4_128x128.png) 缓和曲线四次(T ^ 4 )功能:加速至一半,然后再减速。 | | `QEasingCurve.OutInQuart` | `12` | ![](https://img.kancloud.cn/b2/92/b292763b7e75d076f3d40905a88800f4_128x128.png) 缓和曲线四次(T ^ 4 )功能:减速,直到一半,然后再加速。 | | `QEasingCurve.InQuint` | `13` | ![](https://img.kancloud.cn/27/b2/27b27dec0c1e994ccc6741cd66cee3b5_128x128.png) 缓和曲线五次(T ^ 5 )宽松:从零速度加速。 | | `QEasingCurve.OutQuint` | `14` | ![](https://img.kancloud.cn/a5/78/a578856a7b601f61f691cd3821a9b721_128x128.png) 缓和曲线五次(T ^ 5 )功能:减速至零速度。 | | `QEasingCurve.InOutQuint` | `15` | ![](https://img.kancloud.cn/60/6e/606e80fe5790f5d5a9d99a807fde159c_128x128.png) 缓和曲线五次(T ^ 5 )功能:加速至一半,然后再减速。 | | `QEasingCurve.OutInQuint` | `16` | ![](https://img.kancloud.cn/01/c8/01c85c18c6a45919e8f6ac6854f1608d_128x128.png) 缓和曲线五次(T ^ 5 )功能:减速,直到一半,然后再加速。 | | `QEasingCurve.InSine` | `17` | ![](https://img.kancloud.cn/f6/d7/f6d715bfb102ed07b861f8fcbecd2cb5_128x128.png) 缓动曲线为正弦(罪( t))的功能:从零速度加速。 | | `QEasingCurve.OutSine` | `18` | ![](https://img.kancloud.cn/b7/b0/b7b0d99da4e62902bfb4b6cd3d4ceef8_128x128.png) 缓动曲线为正弦(罪( t))的功能:从零速度减速。 | | `QEasingCurve.InOutSine` | `19` | ![](https://img.kancloud.cn/6b/d7/6bd78c8962506571b5cb1287804b5f1b_128x128.png) 缓动曲线为正弦(罪( t))的功能:加速至一半,然后再减速。 | | `QEasingCurve.OutInSine` | `20` | ![](https://img.kancloud.cn/a7/db/a7db83d86a34e6aae91e14774efa5722_128x128.png) 缓动曲线为正弦(罪( t))的功能:减速,直到一半,然后再加速。 | | `QEasingCurve.InExpo` | `21` | ![](https://img.kancloud.cn/2d/d2/2dd2ca27ef2880f9e7a3aba7424de7a9_128x128.png) 缓和曲线的指数( 2 ^ t)的功能:从零速度加速。 | | `QEasingCurve.OutExpo` | `22` | ![](https://img.kancloud.cn/8a/b7/8ab7144a3f5ffdaf20863ea52d5dde78_128x128.png) 缓和曲线的指数( 2 ^ t)的功能:从零速度减速。 | | `QEasingCurve.InOutExpo` | `23` | ![](https://img.kancloud.cn/53/78/537815886d891977bb69e0533e7ae480_128x128.png) 缓和曲线的指数( 2 ^ t)的功能:加速至一半,然后再减速。 | | `QEasingCurve.OutInExpo` | `24` | ![](https://img.kancloud.cn/a9/c9/a9c9aebe7c8230be51ff44c0404536f1_128x128.png) 缓和曲线的指数( 2 ^ t)的功能:减速,直到一半,然后再加速。 | | `QEasingCurve.InCirc` | `25` | ![](https://img.kancloud.cn/84/d6/84d600b6e26457eff0fbabd060fbf9f4_128x128.png) 缓和曲线的圆( SQRT ( 1 -T ^ 2 ) )功能:从零速度加速。 | | `QEasingCurve.OutCirc` | `26` | ![](https://img.kancloud.cn/e7/ca/e7cade6c28d215792ea8b5d16fdec7d5_128x128.png) 缓和曲线的圆( SQRT ( 1 -T ^ 2 ) )功能:从零速度减速。 | | `QEasingCurve.InOutCirc` | `27` | ![](https://img.kancloud.cn/d6/04/d6041b8f071359f0e2a3f742c2653305_128x128.png) 缓和曲线的圆( SQRT ( 1 -T ^ 2 ) )功能:加速至一半,然后再减速。 | | `QEasingCurve.OutInCirc` | `28` | ![](https://img.kancloud.cn/69/45/6945023b50ed165ca2226a40a1e8c91c_128x128.png) 缓和曲线的圆( SQRT ( 1 -T ^ 2 ) )功能:减速至一半,然后再加速。 | | `QEasingCurve.InElastic` | `29` | ![](https://img.kancloud.cn/13/1f/131fd3af80de439ee9dd17025d2dc0ed_128x128.png) 缓和曲线的弹性(指数衰减正弦波)功能:从零速度加速。峰值幅度可与设置_amplitude_参数和衰减的通过期间_period_参数。 | | `QEasingCurve.OutElastic` | `30` | ![](https://img.kancloud.cn/d5/36/d536c4a0773dde1dbc9aeccff2d4fc03_128x128.png) 缓和曲线的弹性(指数衰减正弦波)功能:从零速度减速。峰值幅度可与设置_amplitude_参数和衰减的通过期间_period_参数。 | | `QEasingCurve.InOutElastic` | `31` | ![](https://img.kancloud.cn/b8/4b/b84b7a84bd4db5be532f49519e8d46c3_128x128.png) 缓和曲线的弹性(指数衰减正弦波)功能:加速至一半,然后再减速。 | | `QEasingCurve.OutInElastic` | `32` | ![](https://img.kancloud.cn/60/5c/605cda1a65640d87c38769248fa6ff13_128x128.png) 缓和曲线的弹性(指数衰减正弦波)功能:减速至一半,然后再加速。 | | `QEasingCurve.InBack` | `33` | ![](https://img.kancloud.cn/91/e8/91e8c0a4208f25b8b872edf5dcaaea66_128x128.png) 缓和曲线的背(过冲三次函数: ( S +1 ) * T ^ 3 - S * T ^ 2 )缓和:从零速度加速。 | | `QEasingCurve.OutBack` | `34` | ![](https://img.kancloud.cn/dd/80/dd80211cbc9cbf655cacb53e57eea15b_128x128.png) 缓和曲线的背(过冲三次函数: ( S +1 ) * T ^ 3 - S * T ^ 2 )缓出:减速至零速度。 | | `QEasingCurve.InOutBack` | `35` | ![](https://img.kancloud.cn/c6/d0/c6d05330a74d424af771d807dd1becbc_128x128.png) 缓和曲线的背(过冲三次函数: ( S +1 ) * T ^ 3 - S * T ^ 2 )缓解输入/输出:加速,直到一半,然后再减速。 | | `QEasingCurve.OutInBack` | `36` | ![](https://img.kancloud.cn/43/24/432445d05fb3863115c1add0a4aee5e3_128x128.png) 缓和曲线的背部(立方过度宽松: ( S +1 ) * T ^ 3 - S * T ^ 2 )缓和输出/输入:减速至一半,然后再加速。 | | `QEasingCurve.InBounce` | `37` | ![](https://img.kancloud.cn/f3/ca/f3ca215257e561943a64f889f102020b_128x128.png) 缓和曲线反弹(指数衰减的抛物线反弹)功能:从零速度加速。 | | `QEasingCurve.OutBounce` | `38` | ![](https://img.kancloud.cn/06/2e/062e316b585dccca4610b78edfd01183_128x128.png) 缓和曲线反弹(指数衰减的抛物线反弹)功能:从零速度减速。 | | `QEasingCurve.InOutBounce` | `39` | ![](https://img.kancloud.cn/26/2c/262cd8c4b33ee65d4c1f1037861d822f_128x128.png) 缓和曲线反弹(指数衰减的抛物线反弹)功能缓解输入/输出:加速至一半,然后再减速。 | | `QEasingCurve.OutInBounce` | `40` | ![](https://img.kancloud.cn/02/f3/02f3f0ae52c90431d9883588ca2e9f7e_128x128.png) 缓和曲线反弹(指数衰减的抛物线反弹)函数退出宽松政策/中:减速,直到一半,然后再加速。 | | `QEasingCurve.Custom` | `45` | 如果用户指定了一个自定义的曲线类型,这是返回[setCustomType](qeasingcurve.html#setCustomType)( ) 。请注意,您不能打电话[setType](qeasingcurve.html#setType)( )与该值,但[type](qeasingcurve.html#type)( )可以返回它。 | * * * ## Method Documentation ``` QEasingCurve.__init__ (self, Type type = QEasingCurve.Linear) ``` 构造给定的缓动曲线_type_。 ``` QEasingCurve.__init__ (self, QEasingCurve other) ``` 构建副本_other_。 ``` float QEasingCurve.amplitude (self) ``` 返回的幅度。这并不适用于所有类型的曲线。它仅适用于弹跳和弹性曲线曲线([type](qeasingcurve.html#type)( )[QEasingCurve.InBounce](qeasingcurve.html#Type-enum),[QEasingCurve.OutBounce](qeasingcurve.html#Type-enum),[QEasingCurve.InOutBounce](qeasingcurve.html#Type-enum),[QEasingCurve.OutInBounce](qeasingcurve.html#Type-enum),[QEasingCurve.InElastic](qeasingcurve.html#Type-enum),[QEasingCurve.OutElastic](qeasingcurve.html#Type-enum),[QEasingCurve.InOutElastic](qeasingcurve.html#Type-enum) or [QEasingCurve.OutInElastic](qeasingcurve.html#Type-enum)) 。 **See also** [setAmplitude](qeasingcurve.html#setAmplitude)( ) 。 ``` callable QEasingCurve.customType (self) ``` 返回的函数指针的定义缓动曲线。如果[type](qeasingcurve.html#type)( )不返回[QEasingCurve.Custom](qeasingcurve.html#Type-enum),这个函数将返回0 。 **See also** [setCustomType](qeasingcurve.html#setCustomType)( ) 。 ``` float QEasingCurve.overshoot (self) ``` 返回过冲。这并不适用于所有类型的曲线。它仅适用[type](qeasingcurve.html#type)()是[QEasingCurve.InBack](qeasingcurve.html#Type-enum),[QEasingCurve.OutBack](qeasingcurve.html#Type-enum),[QEasingCurve.InOutBack](qeasingcurve.html#Type-enum) or [QEasingCurve.OutInBack](qeasingcurve.html#Type-enum)。 **See also** [setOvershoot](qeasingcurve.html#setOvershoot)( ) 。 ``` float QEasingCurve.period (self) ``` 返回的时间。这并不适用于所有类型的曲线。它仅适用[type](qeasingcurve.html#type)()是[QEasingCurve.InElastic](qeasingcurve.html#Type-enum),[QEasingCurve.OutElastic](qeasingcurve.html#Type-enum),[QEasingCurve.InOutElastic](qeasingcurve.html#Type-enum) or [QEasingCurve.OutInElastic](qeasingcurve.html#Type-enum)。 **See also** [setPeriod](qeasingcurve.html#setPeriod)( ) 。 ``` QEasingCurve.setAmplitude (self, float amplitude) ``` 设定的幅度以_amplitude_。 这将设置反弹或弹性“弹簧”效应振幅的振幅。该数字越高,则振幅为高。 **See also** [amplitude](qeasingcurve.html#amplitude)( ) 。 ``` QEasingCurve.setCustomType (self, callable func) ``` 设置由用户在函数定义的自定义缓动曲线_func_。该函数的签名是QREAL myEasingFunction ( QREAL进步),其中_progress_和返回值被认为是0和1之间被归一化。 (在某些情况下的返回值可以是在那个范围外)调用此函数之后[type](qeasingcurve.html#type)( )将返回[QEasingCurve.Custom](qeasingcurve.html#Type-enum)。_func_不能为零。 **See also** [customType](qeasingcurve.html#customType)()和[valueForProgress](qeasingcurve.html#valueForProgress)( ) 。 ``` QEasingCurve.setOvershoot (self, float overshoot) ``` 设置超调量_overshoot_。 0不产生过冲,以及1.70158默认值会产生10%的过冲。 **See also** [overshoot](qeasingcurve.html#overshoot)( ) 。 ``` QEasingCurve.setPeriod (self, float period) ``` 设置期间_period_。设置一个小的时间值将赋予曲线的高频。一个大周期将会给它一个小的频率。 **See also** [period](qeasingcurve.html#period)( ) 。 ``` QEasingCurve.setType (self, Type type) ``` 设置缓和曲线的类型_type_。 **See also** [type](qeasingcurve.html#type)( ) 。 ``` Type QEasingCurve.type (self) ``` [ 返回缓和曲线的类型。 ](qeasingcurve.html#Type-enum) [**See also**](qeasingcurve.html#Type-enum) [setType](qeasingcurve.html#setType)( ) 。 ``` float QEasingCurve.valueForProgress (self, float progress) ``` 在返回的缓动曲线的有效进展_progress_。而_progress_必须在0和1之间,返回的有效进展可以是那些界限之外。例如,[QEasingCurve.InBack](qeasingcurve.html#Type-enum)将在函数开头返回负值。 ``` bool QEasingCurve.__eq__ (self, QEasingCurve other) ``` ``` bool QEasingCurve.__ne__ (self, QEasingCurve other) ```