Sur cette page

QCanvasGradient Class

QCanvasGradient est la classe de base pour toutes les brosses de dégradé de QCanvasPainter. Plus...

En-tête : #include <QCanvasGradient>
CMake : find_package(Qt6 REQUIRED COMPONENTS CanvasPainter)
target_link_libraries(mytarget PRIVATE Qt6::CanvasPainter)
Depuis : Qt 6.11
Hérite : QCanvasBrush
Hérité par :

QCanvasBoxGradient, QCanvasConicalGradient, QCanvasLinearGradient, et QCanvasRadialGradient

Statut : Technical Preview

Fonctions publiques

QColor endColor() const
void setColorAt(float position, const QColor &color)
void setEndColor(const QColor &color)
void setStartColor(const QColor &color)
void setStops(const QCanvasGradientStops &stops)
QColor startColor() const
QCanvasGradientStops stops() const
QCanvasBrush::BrushType type() const
operator QVariant() const
QCanvasGradientStops
bool operator!=(const QCanvasGradient &lhs, const QCanvasGradient &rhs)
QDataStream &operator<<(QDataStream &stream, const QCanvasGradient &gradient)
QDataStream &operator<<(QDataStream &stream, const QCanvasGradientStop &stop)
bool operator==(const QCanvasGradient &lhs, const QCanvasGradient &rhs)
QDataStream &operator>>(QDataStream &stream, QCanvasGradient &gradient)
QDataStream &operator>>(QDataStream &stream, QCanvasGradientStop &stop)

Description détaillée

QCanvasGradient est la classe de base pour toutes les brosses de gradient de QCanvasPainter. Il existe actuellement quatre types de dégradés : QCanvasLinearGradient, QCanvasRadialGradient, QCanvasConicalGradient et QCanvasBoxGradient.

Si aucun arrêt n'est fourni avec setStartColor, setEndColor, setColorAt ou setStops, le gradient est rendu avec une couleur de départ blanche (255,255,255) et une couleur de fin transparente (0,0,0,0). Si un seul point d'arrêt est fourni, le dégradé est rempli avec cette couleur.

QCanvasPainter utilise deux approches différentes pour peindre les dégradés.

  • Avec un maximum de 2 arrêts, les couleurs sont transmises au shader sous la forme de 2 uniformes vec4. Cela rend l'animation de dégradés à 2 arrêts très performante, sans étapes supplémentaires entre les deux.
  • Avec plus de 2 arrêts, les couleurs sont transmises au shader sous la forme d'une texture unidimensionnelle. Par défaut, la taille de la texture est de 1x256 pixels, optimisée pour la qualité et les performances. Les textures sont mises en cache, de sorte que lorsque le gradient s'arrête ou que les couleurs ne changent pas, la texture précédente peut être réutilisée même si d'autres propriétés du gradient (comme la position, l'angle, etc.) changent. Bien que l'animation de gradients à arrêts multiples soit rapide, elle entraînera des téléchargements de textures, il faut donc se demander si cela en vaut la peine.

Il existe quelques variables d'environnement pour contrôler l'utilisation des textures de dégradés :

  • QCPAINTER_DISABLE_TEXTURE_USAGE_TRACKING - Par défaut, l'utilisation des textures de dégradés est suivie et maintenue en dessous de la quantité maximale. Définissez cette variable d'environnement pour désactiver le suivi et conserver toutes les textures de gradient en mémoire.
  • QCPAINTER_MAX_TEXTURES - Par défaut, la quantité maximale de textures est 1024. Définissez cette variable d'environnement pour qu'elle contienne le nombre de textures maximum souhaité. Les textures de gradient temporaires actuellement inutilisées sont automatiquement supprimées lorsque la quantité maximale est atteinte.

    Remarque : cela n'a pas d'effet lorsque le suivi de l'utilisation des textures a été désactivé.

Documentation des fonctions membres

QColor QCanvasGradient::endColor() const

Renvoie la couleur de fin de dégradé ou la couleur à la plus grande position. Si la couleur de fin n'a pas été définie, la couleur de fin par défaut est le noir transparent (0, 0, 0, 0).

Voir également setEndColor().

void QCanvasGradient::setColorAt(float position, const QColor &color)

Crée un point d'arrêt à l'adresse position avec l'adresse color. L'adresse position doit être comprise entre 0 et 1.

Voir aussi setStops() et stops().

void QCanvasGradient::setEndColor(const QColor &color)

Fixe la couleur finale du dégradé à color, ce qui équivaut à appeler setColorAt() à la position 1.

Voir aussi endColor().

void QCanvasGradient::setStartColor(const QColor &color)

Fixe la couleur de départ du dégradé à color, ce qui équivaut à appeler setColorAt() à la position 0.

Voir aussi startColor().

void QCanvasGradient::setStops(const QCanvasGradientStops &stops)

Remplace le jeu actuel de points d'arrêt par le jeu donné stops.

Les règles applicables à la liste des arrêts sont les suivantes :

  • La liste doit contenir au moins 2 arrêts.
  • Les positions des arrêts doivent être comprises entre 0 et 1 et doivent être triées en commençant par les arrêts les plus bas.
  • La première position doit être à 0,0 et la dernière à 1,0.

Voir également setColorAt() et stops().

QColor QCanvasGradient::startColor() const

Renvoie la couleur de départ du dégradé ou la couleur à la plus petite position. Si la couleur de départ n'a pas été définie, la couleur de départ par défaut est le blanc (255, 255, 255).

Voir également setStartColor().

QCanvasGradientStops QCanvasGradient::stops() const

Renvoie les points d'arrêt de ce gradient.

Voir aussi setStops() et setColorAt().

QCanvasBrush::BrushType QCanvasGradient::type() const

Renvoie le type de gradient.

QCanvasGradient::operator QVariant() const

Renvoie le gradient sous forme de QVariant.

Non-membres apparentés

QCanvasGradientStops

Typedef pour QList<QCanvasGradientStop>.

[noexcept] bool operator!=(const QCanvasGradient &lhs, const QCanvasGradient &rhs)

Renvoie true si le gradient lhs est différent de rhs; false sinon.

Voir aussi operator==().

QDataStream &operator<<(QDataStream &stream, const QCanvasGradient &gradient)

Écrit la donnée gradient dans la donnée stream et renvoie une référence à stream.

Voir aussi Serializing Qt Data Types (Sérialisation des types de données Qt).

QDataStream &operator<<(QDataStream &stream, const QCanvasGradientStop &stop)

Écrit le gradient stop dans le fichier stream et renvoie une référence à stream.

Voir aussi Serializing Qt Data Types (Sérialisation des types de données Qt).

[noexcept] bool operator==(const QCanvasGradient &lhs, const QCanvasGradient &rhs)

Renvoie true si le gradient lhs est égal à rhs; false sinon.

Voir aussi operator!=().

QDataStream &operator>>(QDataStream &stream, QCanvasGradient &gradient)

Lit la donnée gradient à partir de la donnée stream et renvoie une référence à la donnée stream.

Voir aussi Serializing Qt Data Types (Sérialisation des types de données Qt).

QDataStream &operator>>(QDataStream &stream, QCanvasGradientStop &stop)

Lit un gradient stop à partir de stream et renvoie une référence à stream.

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.