QEasingCurve Class
La classe QEasingCurve fournit des courbes d'accélération permettant de contrôler les animations. En savoir plus...
| En-tête : | #include <QEasingCurve> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake : | QT += core |
- Liste de tous les membres, y compris les membres hérités
- QEasingCurve fait partie du framework d'animation.
Types publics
| EasingFunction | |
| enum | Type { Linear, InQuad, OutQuad, InOutQuad, OutInQuad, …, Custom } |
Fonctions publiques
| QEasingCurve(QEasingCurve::Type type = Linear) | |
| QEasingCurve(const QEasingCurve &other) | |
| QEasingCurve(QEasingCurve &&other) | |
| ~QEasingCurve() | |
| void | addCubicBezierSegment(const QPointF &c1, const QPointF &c2, const QPointF &endPoint) |
| void | addTCBSegment(const QPointF &nextPoint, qreal t, qreal c, qreal b) |
| qreal | amplitude() const |
| QEasingCurve::EasingFunction | customType() const |
| qreal | overshoot() const |
| qreal | period() const |
| void | setAmplitude(qreal amplitude) |
| void | setCustomType(QEasingCurve::EasingFunction func) |
| void | setOvershoot(qreal overshoot) |
| void | setPeriod(qreal period) |
| void | setType(QEasingCurve::Type type) |
| void | swap(QEasingCurve &other) |
| QList<QPointF> | toCubicSpline() const |
| QEasingCurve::Type | type() const |
| qreal | valueForProgress(qreal progress) const |
| QEasingCurve & | operator=(QEasingCurve &&other) |
| QEasingCurve & | operator=(const QEasingCurve &other) |
Membres publics statiques
(since 6.12) QEasingCurve | fromCubicBezier(QPointF c1, QPointF c2) |
Non-membres associés
| bool | operator!=(const QEasingCurve &lhs, const QEasingCurve &rhs) |
| QDataStream & | operator<<(QDataStream &stream, const QEasingCurve &easing) |
| bool | operator==(const QEasingCurve &lhs, const QEasingCurve &rhs) |
| QDataStream & | operator>>(QDataStream &stream, QEasingCurve &easing) |
Description détaillée
Les courbes d'accélération décrivent une fonction qui contrôle la vitesse de l'interpolation entre 0 et 1. Elles permettent d'obtenir des transitions d'une valeur à une autre plus naturelles qu'avec une vitesse constante. La classe `QEasingCurve` est généralement utilisée en association avec les classes ` QVariantAnimation ` et ` QPropertyAnimation `, mais peut également être utilisée seule. Elle sert généralement à accélérer l’interpolation à partir d’une vitesse nulle (accélération en entrée) ou à la ralentir jusqu’à une vitesse nulle (décélération en sortie). L’accélération en entrée et la décélération en sortie peuvent également être combinées au sein d’une même courbe d’accélération.
Pour calculer la vitesse de l'interpolation, la courbe d'accélération fournit la fonction valueForProgress(), où l'argument progress spécifie la progression de l'interpolation : 0 correspond à la valeur de départ de l'interpolation, 1 à la valeur finale de l'interpolation. La valeur renvoyée correspond à la progression effective de l’interpolation. Si la valeur renvoyée est identique à la valeur d’entrée pour toutes les valeurs d’entrée, la courbe d’accélération est une courbe linéaire. Il s’agit du comportement par défaut.
Par exemple,
QEasingCurve easing(QEasingCurve::InOutQuad);
for (qreal t = 0,0; t < 1,0; t+= 0,1)
qWarning() << "Effective progress" << t << "is"
<< easing.valueForProgress(t);affichera la progression effective de l'interpolation entre 0 et 1.
Lorsque vous utilisez un ` QPropertyAnimation`, la courbe d'accélération associée sera utilisée pour contrôler la progression de l'interpolation entre `startValue` et `endValue` :
QPropertyAnimation animation;
animation.setStartValue(0);
animation.setEndValue(1000);
animation.setDuration(1000);
animation.setEasingCurve(QEasingCurve::InOutQuad);La possibilité de définir une amplitude, un dépassement ou une période dépend du type de QEasingCurve. L’accès à l’amplitude est disponible pour les courbes qui se comportent comme des ressorts, telles que les courbes élastiques et les courbes de rebond. La modification de l’amplitude modifie la hauteur de la courbe. L'accès à la période n'est disponible que pour les courbes élastiques ; définir une période plus longue ralentit la vitesse de rebond. Seules les courbes présentant un comportement de type « boomerang », telles que « InBack », « OutBack », « InOutBack » et « OutInBack », disposent de paramètres de dépassement. Ces courbes s'interpolent au-delà des points d'extrémité puis reviennent vers ceux-ci, à la manière d'un boomerang.
L'exemple « Easing Curves » contient des échantillons de types QEasingCurve et vous permet de modifier les paramètres des courbes.
Documentation sur les types de membres
QEasingCurve::EasingFunction
Il s'agit d'un `typedef` pour un pointeur vers une fonction ayant la signature suivante :
enum QEasingCurve::Type
Le type de courbe d'atténuation.
| Constante | Valeur |
|---|---|
QEasingCurve::Linear | 0 |

Courbe d'atténuation pour une fonction linéaire (t) : la vitesse est constante.
| Constante | Valeur |
|---|---|
QEasingCurve::InQuad | 1 |

Courbe d'accélération pour une fonction quadratique (t²) : accélération à partir d'une vitesse nulle.
| Constante | Valeur |
|---|---|
QEasingCurve::OutQuad | 2 |

Courbe d'accélération/décélération pour une fonction quadratique (t²): décélération jusqu'à une vitesse nulle.
| Constante | Valeur |
|---|---|
QEasingCurve::InOutQuad | 3 |

Courbe d'accélération/décélération pour une fonction quadratique (t²): accélération jusqu'à mi-parcours, puis décélération.
| Constante | Valeur |
|---|---|
QEasingCurve::OutInQuad | 4 |

Courbe d'atténuation pour une fonction quadratique (t²): décélération jusqu'à mi-parcours, puis accélération.
| Constante | Valeur |
|---|---|
QEasingCurve::InCubic | 5 |

Courbe d'accélération pour une fonction cubique (t³) : accélération à partir d'une vitesse nulle.
| Constante | Valeur |
|---|---|
QEasingCurve::OutCubic | 6 |

Courbe d'accélération pour une fonction cubique (t³) : décélération jusqu'à une vitesse nulle.
| Constante | Valeur |
|---|---|
QEasingCurve::InOutCubic | 7 |

Courbe d'accélération/décélération pour une fonction cubique (t³) : accélération jusqu'à mi-parcours, puis décélération.
| Constante | Valeur |
|---|---|
QEasingCurve::OutInCubic | 8 |

Courbe d'atténuation pour une fonction cubique (t³) : décélération jusqu'à mi-parcours, puis accélération.
| Constante | Valeur |
|---|---|
QEasingCurve::InQuart | 9 |

Courbe d'accélération pour une fonction de quatrième degré (t^4) : accélération à partir d'une vitesse nulle.
| Constante | Valeur |
|---|---|
QEasingCurve::OutQuart | 10 |

Courbe d'accélération pour une fonction du quatrième degré (t^4) : décélération jusqu’à une vitesse nulle.
| Constante | Valeur |
|---|---|
QEasingCurve::InOutQuart | 11 |

Courbe d'accélération/décélération pour une fonction du quatrième degré (t^4) : accélération jusqu'à mi-parcours, puis décélération.
| Constante | Valeur |
|---|---|
QEasingCurve::OutInQuart | 12 |

Courbe d'accélération/décélération pour une fonction du quatrième degré (t^4) : décélération jusqu'à mi-parcours, puis accélération.
| Constante | Valeur |
|---|---|
QEasingCurve::InQuint | 13 |

Courbe d'accélération pour une fonction quintique (t^5) : accélération à partir d'une vitesse nulle.
| Constante | Valeur |
|---|---|
QEasingCurve::OutQuint | 14 |

Courbe d'atténuation pour une fonction du cinquième degré (t^5) : décélération jusqu'à une vitesse nulle.
| Constante | Valeur |
|---|---|
QEasingCurve::InOutQuint | 15 |

Courbe d'atténuation pour une fonction du cinquième degré (t^5) : accélération jusqu'à mi-parcours, puis décélération.
| Constante | Valeur |
|---|---|
QEasingCurve::OutInQuint | 16 |

Courbe d'atténuation pour une fonction du cinquième degré (t⁵) : décélération jusqu'à mi-parcours, puis accélération.
| Constante | Valeur |
|---|---|
QEasingCurve::InSine | 17 |

Courbe d'accélération pour une fonction sinusoïdale (sin(t)) : accélération à partir d'une vitesse nulle.
| Constante | Valeur |
|---|---|
QEasingCurve::OutSine | 18 |

Courbe d'atténuation pour une fonction sinusoïdale (sin(t)) : décélération jusqu'à une vitesse nulle.
| Constante | Valeur |
|---|---|
QEasingCurve::InOutSine | 19 |

Courbe d'accélération/décélération pour une fonction sinusoïdale (sin(t)) : accélération jusqu'à mi-parcours, puis décélération.
| Constante | Valeur |
|---|---|
QEasingCurve::OutInSine | 20 |

Courbe d'atténuation pour une fonction sinusoïdale (sin(t)) : décélération jusqu'à mi-parcours, puis accélération.
| Constante | Valeur |
|---|---|
QEasingCurve::InExpo | 21 |

Courbe d'atténuation pour une fonction exponentielle (2^t) : accélération à partir d'une vitesse nulle.
| Constante | Valeur |
|---|---|
QEasingCurve::OutExpo | 22 |

Courbe d'accélération/décélération pour une fonction exponentielle (2^t) : décélération jusqu'à une vitesse nulle.
| Constante | Valeur |
|---|---|
QEasingCurve::InOutExpo | 23 |

Courbe d'atténuation pour une fonction exponentielle (2^t) : accélération jusqu'à mi-parcours, puis décélération.
| Constante | Valeur |
|---|---|
QEasingCurve::OutInExpo | 24 |

Courbe d'atténuation pour une fonction exponentielle (2^t) : décélération jusqu'à mi-parcours, puis accélération.
| Constante | Valeur |
|---|---|
QEasingCurve::InCirc | 25 |

Courbe d'accélération pour une fonction circulaire (√(1-t²)) : accélération à partir d'une vitesse nulle.
| Constante | Valeur |
|---|---|
QEasingCurve::OutCirc | 26 |

Courbe d'accélération/décélération pour une fonction circulaire (sqrt(1-t^2)) : décélération jusqu’à une vitesse nulle.
| Constante | Valeur |
|---|---|
QEasingCurve::InOutCirc | 27 |

Courbe d'accélération/décélération pour une fonction circulaire (sqrt(1-t^2)) : accélération jusqu'à mi-parcours, puis décélération.
| Constante | Valeur |
|---|---|
QEasingCurve::OutInCirc | 28 |

Courbe d'accélération/décélération pour une fonction circulaire (√(1-t²)) : décélération jusqu'à mi-parcours, puis accélération.
| Constante | Valeur |
|---|---|
QEasingCurve::InElastic | 29 |

Courbe d'accélération/décélération pour une fonction élastique (onde sinusoïdale à décroissance exponentielle) : accélération à partir d’une vitesse nulle. L’amplitude maximale peut être définie à l’aide du paramètre « amplitude », et la période de décroissance à l’aide du paramètre « période ».
| Constante | Valeur |
|---|---|
QEasingCurve::OutElastic | 30 |

Courbe d'atténuation pour une fonction élastique (onde sinusoïdale à décroissance exponentielle) : décélération jusqu'à une vitesse nulle. L'amplitude maximale peut être définie à l'aide du paramètre « amplitude », et la période de décroissance à l'aide du paramètre « période ».
| Constante | Valeur |
|---|---|
QEasingCurve::InOutElastic | 31 |

Courbe d'accélération/décélération pour une fonction élastique (onde sinusoïdale à décroissance exponentielle) : accélération jusqu'à mi-parcours, puis décélération.
| Constante | Valeur |
|---|---|
QEasingCurve::OutInElastic | 32 |

Courbe d'atténuation pour une fonction élastique (onde sinusoïdale à décroissance exponentielle) : décélération jusqu'à mi-parcours, puis accélération.
| Constante | Valeur |
|---|---|
QEasingCurve::InBack | 33 |

Courbe d'atténuation pour une fonction cubique de type « back » (avec dépassement : (s+1)*t^3 - s*t^2) : accélération à partir d'une vitesse nulle.
| Constante | Valeur |
|---|---|
QEasingCurve::OutBack | 34 |

Courbe d'accélération/décélération pour un retour (fonction cubique avec dépassement : (s+1)*t^3 - s*t^2) : décélération jusqu'à une vitesse nulle.
| Constante | Valeur |
|---|---|
QEasingCurve::InOutBack | 35 |

Fonction InOutBack}
Courbe d'accélération/décélération pour un retour (fonction cubique avec dépassement : (s+1)*t^3 - s*t^2) avec accélération/décélération progressive : accélération jusqu'à mi-parcours, puis décélération.
| Constante | Valeur |
|---|---|
QEasingCurve::OutInBack | 36 |

Courbe d'accélération/décélération pour un retour en arrière (accélération/décélération cubique avec dépassement : (s+1)*t^3 - s*t^2) : décélération jusqu'à mi-parcours, puis accélération.
| Constante | Valeur |
|---|---|
QEasingCurve::InBounce | 37 |

Courbe d'accélération/décélération pour un rebond (rebond parabolique à décroissance exponentielle) : accélération à partir d'une vitesse nulle.
| Constante | Valeur |
|---|---|
QEasingCurve::OutBounce | 38 |

Courbe d’amortissement pour une fonction de rebond (rebond parabolique à décroissance exponentielle) : décélération à partir d’une vitesse nulle.
| Constante | Valeur |
|---|---|
QEasingCurve::InOutBounce | 39 |

Courbe d'accélération/décélération pour une fonction de rebond (rebond parabolique à décroissance exponentielle) avec accélération/décélération : accélération jusqu'à mi-parcours, puis décélération.
| Constante | Valeur |
|---|---|
QEasingCurve::OutInBounce | 40 |

Courbe d’accélération/décélération pour une fonction de rebond (rebond parabolique à décroissance exponentielle) : décélération jusqu’à mi-parcours, puis accélération.
| Constante | Valeur | Description |
|---|---|---|
QEasingCurve::BezierSpline | 45 | Permet de définir une courbe d’accélération personnalisée à l’aide d’une spline de Bézier cubique |
QEasingCurve::TCBSpline | 46 | Permet de définir une courbe d'accélération/décélération personnalisée à l'aide d'une spline TCB |
QEasingCurve::Custom | 47 | Cette valeur est renvoyée si l'utilisateur a spécifié un type de courbe personnalisé avec la fonction setCustomType(). Notez que vous ne pouvez pas appeler la fonction setType() avec cette valeur, mais que la fonction type() peut la renvoyer. |
Voir également addCubicBezierSegment() et addTCBSegment().
Documentation sur les fonctions membres
QEasingCurve::QEasingCurve(QEasingCurve::Type type = Linear)
Construit une courbe d'accélération à partir de l'type ion fournie.
QEasingCurve::QEasingCurve(const QEasingCurve &other)
Créez une copie de other.
[noexcept] QEasingCurve::QEasingCurve(QEasingCurve &&other)
Crée une instance de `QEasingCurve` en la faisant pointer vers le même objet que celui vers lequel pointait ` other `.
[noexcept] QEasingCurve::~QEasingCurve()
Destructeur.
void QEasingCurve::addCubicBezierSegment(const QPointF &c1, const QPointF &c2, const QPointF &endPoint)
Ajoute un segment de spline de Bézier cubique pour définir une courbe d'accélération personnalisée. Cette fonction n'est applicable que si type() est défini sur QEasingCurve::BezierSpline. Notez que la spline commence implicitement en (0,0) et doit se terminer en (1,1) pour constituer une courbe d'accélération valide. c1 et c2 sont les points de contrôle utilisés pour tracer la courbe. endPoint est le point d'extrémité de la courbe.
Voir également fromCubicBezier().
void QEasingCurve::addTCBSegment(const QPointF &nextPoint, qreal t, qreal c, qreal b)
Ajoute un segment de spline de Bézier TCB pour définir une courbe d'accélération personnalisée. Cela n'est applicable que si type() est QEasingCurve::TCBSpline. Pour que la courbe d'accélération soit valide, la spline doit commencer explicitement en (0,0) et se terminer en (1,1). La tension t modifie la longueur du vecteur tangent. La continuité c modifie la brusquerie du passage d’une tangente à l’autre. Le biais b modifie la direction du vecteur tangent. nextPoint correspond à la position d’échantillonnage. Ces trois paramètres sont valides entre -1 et 1 et définissent la tangente du point de contrôle. Si les trois paramètres sont égaux à 0, la spline obtenue est une spline de Catmull-Rom. Les points de début et de fin ont toujours un biais de -1 et 1, car la tangente extérieure n’est pas définie.
qreal QEasingCurve::amplitude() const
Renvoie l'amplitude. Cette fonction n'est pas applicable à tous les types de courbes. Elle ne s'applique qu'aux courbes de rebond et aux courbes élastiques (courbes de type() QEasingCurve::InBounce, QEasingCurve::OutBounce, QEasingCurve::InOutBounce, QEasingCurve::OutInBounce, QEasingCurve::InElastic, QEasingCurve::OutElastic, QEasingCurve::InOutElastic ou QEasingCurve::OutInElastic).
Voir également setAmplitude().
QEasingCurve::EasingFunction QEasingCurve::customType() const
Renvoie le pointeur de fonction vers la courbe d'accélération personnalisée. Si la fonction type() ne renvoie pas QEasingCurve::Custom, cette fonction renverra 0.
Voir également setCustomType().
[static, since 6.12] QEasingCurve QEasingCurve::fromCubicBezier(QPointF c1, QPointF c2)
Renvoie une courbe de Bézier cubique avec les points de contrôle spécifiés : c1 et c2.
Une courbe de Bézier cubique est définie par quatre points de contrôle : C0, C1, C2 et C3. C0 et C3 correspondent respectivement aux positions de départ et d'arrivée. Cette fonction renvoie une courbe de Bézier cubique dont le point de départ C0 est fixé à (0, 0) et le point d'arrivée C3 à (1, 1).
Il s'agit d'une fonction d'aide pratique, équivalente à l'appel de `addCubicBezierSegment(c1, c2, QPointF(1, 1))`. Si vous avez besoin de construire une spline de Bézier cubique plus complexe, utilisez plutôt la fonction ` addCubicBezierSegment()`.
Cette fonction a été introduite dans Qt 6.12.
Voir également addCubicBezierSegment().
qreal QEasingCurve::overshoot() const
Renvoie le dépassement. Cette fonction n'est pas applicable à tous les types de courbes. Elle ne s'applique que si type() a pour valeur QEasingCurve::InBack, QEasingCurve::OutBack, QEasingCurve::InOutBack ou QEasingCurve::OutInBack.
Voir également setOvershoot().
qreal QEasingCurve::period() const
Renvoie la période. Cette fonction n'est pas applicable à tous les types de courbes. Elle ne s'applique que si type() a pour valeur QEasingCurve::InElastic, QEasingCurve::OutElastic, QEasingCurve::InOutElastic ou QEasingCurve::OutInElastic.
Voir également setPeriod().
void QEasingCurve::setAmplitude(qreal amplitude)
Définit l'amplitude sur amplitude.
Cela permet de définir l'amplitude du rebond ou l'amplitude de l'effet « ressort » élastique. Plus le nombre est élevé, plus l'amplitude est importante.
Voir également amplitude().
void QEasingCurve::setCustomType(QEasingCurve::EasingFunction func)
Définit une courbe d'accélération personnalisée définie par l'utilisateur dans la fonction func. La signature de la fonction est `qreal myEasingFunction(qreal progress)`, où `progress` et la valeur de retour sont considérés comme normalisés entre 0 et 1. (Dans certains cas, la valeur de retour peut se situer en dehors de cette plage.) Après l’appel de cette fonction, ` type()` renverra ` QEasingCurve::Custom`. ` func ` ne peut pas être ` nullptr`.
Voir également customType() et valueForProgress().
void QEasingCurve::setOvershoot(qreal overshoot)
Définit le dépassement sur overshoot.
La valeur 0 ne produit aucun dépassement, tandis que la valeur par défaut de 1,70158 produit un dépassement de 10 %.
Voir également overshoot().
void QEasingCurve::setPeriod(qreal period)
Définit la période sur period. Une valeur de période faible donnera une fréquence élevée à la courbe. Une période élevée lui donnera une fréquence faible.
Voir également period().
void QEasingCurve::setType(QEasingCurve::Type type)
Définit le type de courbe d'accélération sur « type ».
Voir également type().
[noexcept] void QEasingCurve::swap(QEasingCurve &other)
Permet d'échanger cette courbe contre celle de other. Cette opération est très rapide et ne pose jamais de problème.
QList<QPointF> QEasingCurve::toCubicSpline() const
Renvoie la classe `cubicBezierSpline` qui définit une courbe d'accélération personnalisée. Si la courbe d'accélération ne comporte pas de courbe d'accélération Bézier personnalisée, la liste est vide.
QEasingCurve::Type QEasingCurve::type() const
Renvoie le type de la courbe d'accélération.
Voir aussi setType().
qreal QEasingCurve::valueForProgress(qreal progress) const
Renvoie la progression effective de la courbe d'accélération/décélération définie par progress. Alors que progress doit être compris entre 0 et 1, la progression effective renvoyée peut se situer en dehors de ces limites. Par exemple, QEasingCurve::InBack renverra des valeurs négatives au début de la fonction.
[noexcept] QEasingCurve &QEasingCurve::operator=(QEasingCurve &&other)
Cette opération attribue l'other à cette instance QEasingCurve.
QEasingCurve &QEasingCurve::operator=(const QEasingCurve &other)
Copier other.
Connexes (non-membres)
[noexcept] bool operator!=(const QEasingCurve &lhs, const QEasingCurve &rhs)
Compare la courbe d'accélération lhs à rhs et renvoie true si elles ne sont pas identiques ; sinon, renvoie false. Cette fonction compare également les propriétés des courbes.
Voir également operator==().
QDataStream &operator<<(QDataStream &stream, const QEasingCurve &easing)
Écrit la courbe d'easing donnée dans le flux stream spécifié et renvoie une référence à ce flux.
Avertissement : l'écriture de courbes d'accélération de type « QEasingCurve::Custom » (c'est-à-dire des courbes avec une fonction d'accélération personnalisée) n'est pas prise en charge.
Voir également Sérialisation des types de données Qt.
[noexcept] bool operator==(const QEasingCurve &lhs, const QEasingCurve &rhs)
Compare la courbe d'atténuation lhs à rhs et renvoie true si elles sont identiques ; sinon, renvoie false. Cette fonction compare également les propriétés des courbes.
QDataStream &operator>>(QDataStream &stream, QEasingCurve &easing)
Lit une courbe d'atténuation à partir de l'stream ion fournie et la convertit en une courbe easing ion fournie, puis renvoie une référence au flux.
Voir également Sérialisation des types de données Qt.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.