Sur cette page

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

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)
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 :

qreal myEasingFunction(qreal progress);

enum QEasingCurve::Type

Le type de courbe d'assouplissement.

ConstanteValeur
QEasingCurve::Linear0

Graphique d'une fonction linéaire.

Courbe d'assouplissement pour une fonction linéaire (t) : la vitesse est constante.

ConstanteValeur
QEasingCurve::InQuad1

Graphique d'une fonction InQuadratique.

Courbe d'assouplissement pour une fonction quadratique (t^2) : accélération à partir d'une vitesse nulle.

ConstanteValeur
QEasingCurve::OutQuad2

Graphique d'une fonction OutQuadratique

Courbe d'assouplissement d'une fonction quadratique (t^2) : décélération jusqu'à une vitesse nulle.

ConstanteValeur
QEasingCurve::InOutQuad3

Graphique d'une fonction quadratique InOutquad

Courbe d'adoucissement pour une fonction quadratique (t^2) : accélération jusqu'à la moitié, puis décélération.

ConstanteValeur
QEasingCurve::OutInQuad4

Graphique d'une fonction quadratique OutInquad

Courbe d'assouplissement pour une fonction quadratique (t^2) : décélération jusqu'à la moitié, puis accélération.

ConstanteValeur
QEasingCurve::InCubic5

Graphique d'une fonction InCubique

Courbe d'assouplissement pour une fonction cubique (t^3) : accélération à partir d'une vitesse nulle.

ConstanteValeur
QEasingCurve::OutCubic6

Graphique d'une fonction OutCubic

Courbe d'assouplissement pour une fonction cubique (t^3) : décélération jusqu'à une vitesse nulle.

ConstanteValeur
QEasingCurve::InOutCubic7

Graphique d'une fonction InOutCubic.

Courbe d'adoucissement pour une fonction cubique (t^3) : accélération jusqu'à la moitié, puis décélération.

ConstanteValeur
QEasingCurve::OutInCubic8

Graphique d'une fonction OutInCubic.

Courbe d'assouplissement pour une fonction cubique (t^3) : décélération jusqu'à la moitié, puis accélération.

ConstanteValeur
QEasingCurve::InQuart9

Graphique d'une fonction InQuartique.

Courbe d'assouplissement pour une fonction quartique (t^4) : accélération à partir d'une vitesse nulle.

ConstanteValeur
QEasingCurve::OutQuart10

Graphique d'une fonction OutQuartic.

Courbe d'assouplissement d'une fonction quartique (t^4) : décélération jusqu'à une vitesse nulle.

ConstanteValeur
QEasingCurve::InOutQuart11

Graphique d'une fonction InOutQuartic.

Courbe d'adoucissement pour une fonction quartique (t^4) : accélération jusqu'à la moitié, puis décélération.

ConstanteValeur
QEasingCurve::OutInQuart12

Graphique d'une fonction OutInQuartic.

Courbe d'assouplissement d'une fonction quartique (t^4) : décélération jusqu'à la moitié, puis accélération.

ConstanteValeur
QEasingCurve::InQuint13

Graphique d'une fonction InQuintique

Courbe d'assouplissement d'une fonction quintique (t^5) : accélération à partir d'une vitesse nulle.

ConstanteValeur
QEasingCurve::OutQuint14

Graphique d'une fonction OutQuintic

Courbe d'assouplissement pour une fonction quintique (t^5) : décélération jusqu'à une vitesse nulle.

ConstanteValeur
QEasingCurve::InOutQuint15

Graphique d'une fonction InOutQuintic

Courbe d'assouplissement pour une fonction quintique (t^5) : accélération jusqu'à la moitié, puis décélération.

ConstanteValeur
QEasingCurve::OutInQuint16

Graphique d'une fonction OutInQuintic

Courbe d'assouplissement pour une fonction quintique (t^5) : décélération jusqu'à la moitié, puis accélération.

ConstanteValeur
QEasingCurve::InSine17

Graphique d'une fonction InSinusoïdale

Courbe d'assouplissement pour une fonction sinusoïdale (sin(t)) : accélération à partir d'une vitesse nulle.

ConstanteValeur
QEasingCurve::OutSine18

Graphique d'une fonction OutSinusoidal

Courbe d'assouplissement pour une fonction sinusoïdale (sin(t)) : décélération jusqu'à une vitesse nulle.

ConstanteValeur
QEasingCurve::InOutSine19

Graphique d'une fonction InOutSinusoidal

Courbe d'assouplissement pour une fonction sinusoïdale (sin(t)) : accélération jusqu'à la moitié, puis décélération.

ConstanteValeur
QEasingCurve::OutInSine20

Graphique d'une fonction OutInSinusoidal

Courbe d'assouplissement pour une fonction sinusoïdale (sin(t)) : décélération jusqu'à la moitié, puis accélération.

Valeur constanteValeur
QEasingCurve::InExpo21

Graphique d'une fonction InExponentielle

Courbe d'assouplissement d'une fonction exponentielle (2^t) : accélération à partir d'une vitesse nulle.

ConstanteValeur
QEasingCurve::OutExpo22

Graphique d'une fonction exponentielle

Courbe d'assouplissement d'une fonction exponentielle (2^t) : décélération jusqu'à une vitesse nulle.

ConstanteValeur
QEasingCurve::InOutExpo23

Graphique d'une fonction InOutExponentielle

Courbe d'assouplissement pour une fonction exponentielle (2^t) : accélération jusqu'à la moitié, puis décélération.

ConstanteValeur
QEasingCurve::OutInExpo24

Graphique d'une fonction OutInExponential

Courbe d'assouplissement d'une fonction exponentielle (2^t) : décélération jusqu'à la moitié, puis accélération.

ConstanteValeur
QEasingCurve::InCirc25

Graphique d'une fonction InCircular

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

ConstanteValeur
QEasingCurve::OutCirc26

Graphique d'une fonction OutCircular

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

ConstanteValeur
QEasingCurve::InOutCirc27

Graphique d'une fonction InOutCircular

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

Valeur constanteValeur
QEasingCurve::OutInCirc28

Graphique d'une fonction OutInCircular

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

Valeur constanteValeur
QEasingCurve::InElastic29

Graphique d'une fonction élastique

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.

ConstanteValeur
QEasingCurve::OutElastic30

Graphique d'une fonction hors élasticité

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.

ConstanteValeur
QEasingCurve::InOutElastic31

Graphique d'une fonction InOutElastic

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 constanteValeur
QEasingCurve::OutInElastic32

Graphique d'une fonction OutInElastic

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 constanteValeur
QEasingCurve::InBack33

Graphique d'une fonction InBack

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.

ConstanteValeur
QEasingCurve::OutBack34

Graphique d'une fonction OutBack

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 constanteValeur
QEasingCurve::InOutBack35

Graphique d'un

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.

ConstanteValeur
QEasingCurve::OutInBack36

Graphique d'une fonction OutInBack

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 constanteValeur
QEasingCurve::InBounce37

Graphique d'une fonction InBounce

Courbe d'assouplissement pour un rebond (rebond parabolique à décroissance exponentielle) fonction : accélération à partir d'une vitesse nulle.

Valeur constanteValeur
QEasingCurve::OutBounce38

Graphique d'une fonction OutBounce

Courbe d'assouplissement pour une fonction de rebond (rebond parabolique à décroissance exponentielle) : décélération à partir d'une vitesse nulle.

ConstanteValeur
QEasingCurve::InOutBounce39

Graphique d'une fonction InOutBounce

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.

ConstanteValeur
QEasingCurve::OutInBounce40

Graphique d'une fonction OutInBounce

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 constanteValeurDescription
QEasingCurve::BezierSpline45Permet de définir une courbe d'assouplissement personnalisée à l'aide d'une spline de bézier cubique
QEasingCurve::TCBSpline46Permet de définir une courbe d'assouplissement personnalisée à l'aide d'une spline TCB.
QEasingCurve::Custom47Cette 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.