QEasingCurve Class
La classe QEasingCurve fournit des courbes d'assouplissement pour contrôler l'animation. Plus d'informations...
| 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 de Animation Framework.
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) |
Non-membres apparenté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'assouplissement décrivent une fonction qui contrôle la vitesse d'interpolation entre 0 et 1. Les courbes d'assouplissement permettent aux transitions d'une valeur à l'autre de paraître plus naturelles qu'une simple vitesse constante ne le permettrait. La classe QEasingCurve est généralement utilisée avec les classes QVariantAnimation et QPropertyAnimation, mais elle peut également être utilisée seule. Elle est généralement utilisée pour accélérer l'interpolation à partir d'une vitesse nulle (ease in) ou pour décélérer jusqu'à une vitesse nulle (ease out). L'assouplissement et la décélération peuvent également être combinés dans la même courbe d'assouplissement.
Pour calculer la vitesse de l'interpolation, la courbe d'assouplissement fournit la fonction valueForProgress(), où l'argument progress spécifie la progression de l'interpolation : 0 est la valeur de départ de l'interpolation, 1 est la valeur de fin de l'interpolation. La valeur renvoyée est 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'assouplissement est une courbe linéaire. Il s'agit du comportement par défaut.
Il s'agit du comportement par défaut,
QEasingCurve easing(QEasingCurve::InOutQuad) ;for (qreal t = 0.0; t < 1.0; t += 0.1) qWarning() << "Effective progress" << t << "is" << easing.valueForProgress(t) ;
imprimera la progression effective de l'interpolation entre 0 et 1.
Lors de l'utilisation d'un QPropertyAnimation, la courbe d'assouplissement associée sera utilisée pour contrôler la progression de l'interpolation entre la valeur de départ et la valeur d'arrivée :
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 change la hauteur de la courbe. L'accès à la période n'est disponible que pour les courbes élastiques et le réglage d'une période plus élevée ralentit le taux de rebond. Seules les courbes ayant un comportement de "boomerang", telles que les courbes InBack, OutBack, InOutBack et OutInBack, disposent de paramètres de dépassement. Ces courbes interpolent au-delà des points d'extrémité et reviennent au point d'extrémité, agissant de la même manière qu'un boomerang.
L'exemple de courbes d'assouplissement contient des exemples de types de courbes d'assouplissement 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 avec la signature suivante :
enum QEasingCurve::Type
Le type de courbe d'assouplissement.
| Constante | Valeur |
|---|---|
QEasingCurve::Linear | 0 |

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

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

Courbe d'assouplissement d'une fonction quadratique (t^2) : décélération jusqu'à une vitesse nulle.
| Constante | Valeur |
|---|---|
QEasingCurve::InOutQuad | 3 |

Courbe d'adoucissement pour une fonction quadratique (t^2) : accélération jusqu'à la moitié, puis décélération.
| Constante | Valeur |
|---|---|
QEasingCurve::OutInQuad | 4 |

Courbe d'assouplissement pour une fonction quadratique (t^2) : décélération jusqu'à la moitié, puis accélération.
| Constante | Valeur |
|---|---|
QEasingCurve::InCubic | 5 |

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

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

Courbe d'adoucissement pour une fonction cubique (t^3) : accélération jusqu'à la moitié, puis décélération.
| Constante | Valeur |
|---|---|
QEasingCurve::OutInCubic | 8 |

Courbe d'assouplissement pour une fonction cubique (t^3) : décélération jusqu'à la moitié, puis accélération.
| Constante | Valeur |
|---|---|
QEasingCurve::InQuart | 9 |

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

Courbe d'assouplissement d'une fonction quartique (t^4) : décélération jusqu'à une vitesse nulle.
| Constante | Valeur |
|---|---|
QEasingCurve::InOutQuart | 11 |

Courbe d'adoucissement pour une fonction quartique (t^4) : accélération jusqu'à la moitié, puis décélération.
| Constante | Valeur |
|---|---|
QEasingCurve::OutInQuart | 12 |

Courbe d'assouplissement d'une fonction quartique (t^4) : décélération jusqu'à la moitié, puis accélération.
| Constante | Valeur |
|---|---|
QEasingCurve::InQuint | 13 |

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

Courbe d'assouplissement pour une fonction quintique (t^5) : décélération jusqu'à une vitesse nulle.
| Constante | Valeur |
|---|---|
QEasingCurve::InOutQuint | 15 |

Courbe d'assouplissement pour une fonction quintique (t^5) : accélération jusqu'à la moitié, puis décélération.
| Constante | Valeur |
|---|---|
QEasingCurve::OutInQuint | 16 |

Courbe d'assouplissement pour une fonction quintique (t^5) : décélération jusqu'à la moitié, puis accélération.
| Constante | Valeur |
|---|---|
QEasingCurve::InSine | 17 |

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

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

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

Courbe d'assouplissement pour une fonction sinusoïdale (sin(t)) : décélération jusqu'à la moitié, puis accélération.
| Valeur constante | Valeur |
|---|---|
QEasingCurve::InExpo | 21 |

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

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

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

Courbe d'assouplissement d'une fonction exponentielle (2^t) : décélération jusqu'à la moitié, puis accélération.
| Constante | Valeur |
|---|---|
QEasingCurve::InCirc | 25 |

Courbe d'assouplissement d'une fonction circulaire (sqrt(1-t^2)) : accélération à partir d'une vitesse nulle.
| Constante | Valeur |
|---|---|
QEasingCurve::OutCirc | 26 |

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

Courbe d'adoucissement pour une fonction circulaire (sqrt(1-t^2)) : accélération jusqu'à la moitié, puis décélération.
| Valeur constante | Valeur |
|---|---|
QEasingCurve::OutInCirc | 28 |

Courbe d'adoucissement pour une fonction circulaire (sqrt(1-t^2)) : décélération jusqu'à la moitié, puis accélération.
| Valeur constante | Valeur |
|---|---|
QEasingCurve::InElastic | 29 |

Courbe d'assouplissement pour une fonction élastique (onde sinusoïdale à décroissance exponentielle) : accélération à partir d'une vitesse nulle. L'amplitude du pic 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'assouplissement 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 d'amplitude et la période de décroissance à l'aide du paramètre de période.
| Constante | Valeur |
|---|---|
QEasingCurve::InOutElastic | 31 |

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

Courbe d'assouplissement d'une fonction élastique (onde sinusoïdale à décroissance exponentielle) : décélération jusqu'à la moitié, puis accélération.
| Valeur constante | Valeur |
|---|---|
QEasingCurve::InBack | 33 |

Courbe d'assouplissement pour une fonction rétroactive (fonction cubique à dépassement : (s+1)*t^3 - s*t^2) assouplissement : accélération à partir d'une vitesse nulle.
| Constante | Valeur |
|---|---|
QEasingCurve::OutBack | 34 |

Courbe d'assouplissement pour un dos (fonction cubique de dépassement : (s+1)*t^3 - s*t^2) easing out : décélération jusqu'à une vitesse nulle.
| Valeur constante | Valeur |
|---|---|
QEasingCurve::InOutBack | 35 |

Fonction InOutBack}
Courbe d'assouplissement pour un retour (fonction cubique de dépassement : (s+1)*t^3 - s*t^2) easing in/out : accélération jusqu'à la moitié, puis décélération.
| Constante | Valeur |
|---|---|
QEasingCurve::OutInBack | 36 |

Courbe d'assouplissement pour un retour (fonction cubique de dépassement : (s+1)*t^3 - s*t^2) assouplissement vers l'extérieur/l'extérieur : décélération jusqu'à la moitié, puis accélération.
| Valeur constante | Valeur |
|---|---|
QEasingCurve::InBounce | 37 |

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

Courbe d'assouplissement 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'assouplissement pour une fonction de rebond (rebond parabolique à décroissance exponentielle) easing in/out : accélération jusqu'à la moitié, puis décélération.
| Constante | Valeur |
|---|---|
QEasingCurve::OutInBounce | 40 |

Courbe d'assouplissement pour un rebond (rebond parabolique à décroissance exponentielle) fonction easing out/in : décélération jusqu'à la moitié, puis accélération.
| Valeur constante | Valeur | Description |
|---|---|---|
QEasingCurve::BezierSpline | 45 | Permet de définir une courbe d'assouplissement personnalisée à l'aide d'une spline de bézier cubique |
QEasingCurve::TCBSpline | 46 | Permet de définir une courbe d'assouplissement 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 setCustomType(). Notez que vous ne pouvez pas appeler setType() avec cette valeur, mais que type() peut la renvoyer. |
Voir aussi addCubicBezierSegment() et addTCBSegment().
Documentation des fonctions membres
QEasingCurve::QEasingCurve(QEasingCurve::Type type = Linear)
Construit une courbe d'assouplissement de la valeur donnée type.
QEasingCurve::QEasingCurve(const QEasingCurve &other)
Construire une copie de other.
[noexcept] QEasingCurve::QEasingCurve(QEasingCurve &&other)
Move-construit une instance de QEasingCurve, en la faisant pointer sur le même objet que other.
[noexcept] QEasingCurve::~QEasingCurve()
Destructeur.
void QEasingCurve::addCubicBezierSegment(const QPointF &c1, const QPointF &c2, const QPointF &endPoint)
Ajoute un segment d'une spline de bézier cubique pour définir une courbe d'assouplissement personnalisée. Elle n'est applicable que si type() est QEasingCurve::BezierSpline. Notez que la spline commence implicitement à (0,0, 0,0) et doit se terminer à (1,0, 1,0) pour être une courbe d'assouplissement valide. c1 et c2 sont les points de contrôle utilisés pour dessiner la courbe. endPoint est le point final de la courbe.
void QEasingCurve::addTCBSegment(const QPointF &nextPoint, qreal t, qreal c, qreal b)
Ajoute un segment d'une spline de bézier TCB pour définir une courbe d'assouplissement personnalisée. Elle n'est applicable que si type() est QEasingCurve::TCBSpline. La courbe doit commencer explicitement à (0,0, 0,0) et se terminer à (1,0, 1,0) pour être une courbe d'assouplissement valide. La tension t modifie la longueur du vecteur tangent. La continuité c modifie la netteté du changement entre les tangentes. Le biais b modifie la direction du vecteur tangent. nextPoint est la position de l'échantillon. Les trois paramètres sont valables entre -1 et 1 et définissent la tangente du point de contrôle. Si les trois paramètres sont à 0, la spline résultante est une spline de Catmull-Rom. Le point de départ et le point d'arrivée ont toujours un biais de -1 et 1, puisque la tangente extérieure n'est pas définie.
qreal QEasingCurve::amplitude() const
Renvoie l'amplitude. Cette fonction ne s'applique pas à 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 la fonction vers la courbe d'assouplissement personnalisée. Si type() ne renvoie pas QEasingCurve::Custom, cette fonction renvoie 0.
Voir également setCustomType().
qreal QEasingCurve::overshoot() const
Renvoie le dépassement. Cette fonction ne s'applique pas à tous les types de courbes. Elle n'est applicable que si type() est QEasingCurve::InBack, QEasingCurve::OutBack, QEasingCurve::InOutBack ou QEasingCurve::OutInBack.
Voir également setOvershoot().
qreal QEasingCurve::period() const
Renvoie la période. Ceci n'est pas applicable à tous les types de courbes. Elle n'est applicable que si type() est QEasingCurve::InElastic, QEasingCurve::OutElastic, QEasingCurve::InOutElastic ou QEasingCurve::OutInElastic.
Voir également setPeriod().
void QEasingCurve::setAmplitude(qreal amplitude)
Définit l'amplitude à amplitude.
Cette valeur définit l'amplitude du rebond ou l'amplitude de l'effet de "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'assouplissement personnalisée définie par l'utilisateur dans la fonction func. La signature de la fonction est qreal myEasingFunction(qreal progress), où la progression et la valeur de retour sont considérées comme normalisées entre 0 et 1. (Dans certains cas, la valeur de retour peut se situer en dehors de cette plage) Après avoir appelé cette fonction, type() renverra QEasingCurve::Custom. func ne peut pas être nullptr.
Voir aussi customType() et valueForProgress().
void QEasingCurve::setOvershoot(qreal overshoot)
Définit le dépassement à overshoot.
0 ne produit aucun dépassement, et la valeur par défaut de 1,70158 produit un dépassement de 10 pour cent.
Voir également overshoot().
void QEasingCurve::setPeriod(qreal period)
Règle la période sur period. Une petite valeur de période donne une fréquence élevée à la courbe. Une grande période lui donnera une petite fréquence.
Voir également period().
void QEasingCurve::setType(QEasingCurve::Type type)
Définit le type de la courbe d'assouplissement à type.
Voir aussi type().
[noexcept] void QEasingCurve::swap(QEasingCurve &other)
Remplace cette courbe par other. Cette opération est très rapide et n'échoue jamais.
QList<QPointF> QEasingCurve::toCubicSpline() const
Renvoie la cubicBezierSpline qui définit une courbe d'assouplissement personnalisée. Si la courbe d'assouplissement n'a pas de courbe d'assouplissement de Bézier personnalisée, la liste est vide.
QEasingCurve::Type QEasingCurve::type() const
Renvoie le type de la courbe d'assouplissement.
Voir également setType().
qreal QEasingCurve::valueForProgress(qreal progress) const
Renvoie la progression effective de la courbe d'assouplissement à l'adresse 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)
Move-assigne other à cette instance QEasingCurve.
QEasingCurve &QEasingCurve::operator=(const QEasingCurve &other)
Copie other.
Non-membres apparentés
[noexcept] bool operator!=(const QEasingCurve &lhs, const QEasingCurve &rhs)
Compare la courbe d'assouplissement lhs avec rhs et renvoie true si elles ne sont pas égales ; sinon, renvoie false. Il compare également les propriétés des courbes.
Voir aussi operator==().
QDataStream &operator<<(QDataStream &stream, const QEasingCurve &easing)
Écrit la courbe easing donnée sur le site stream donné et renvoie une référence au flux.
Attention : L'écriture de courbes d'assouplissement de type QEasingCurve::Custom (c'est-à-dire des courbes avec une fonction d'assouplissement personnalisée) n'est pas prise en charge.
Voir aussi Serializing Qt Data Types (Sérialisation des types de données Qt).
[noexcept] bool operator==(const QEasingCurve &lhs, const QEasingCurve &rhs)
Compare la courbe d'assouplissement lhs avec rhs et renvoie true si elles sont égales ; sinon, renvoie false. Il compare également les propriétés des courbes.
QDataStream &operator>>(QDataStream &stream, QEasingCurve &easing)
Lit une courbe d'assouplissement à partir du site stream dans la courbe easing et renvoie une référence au flux.
Voir aussi Serializing Qt Data Types (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.