Sur cette page

QCanvasBoxShadow Class

QCanvasBoxShadow est une brosse pour peindre les ombres et les lueurs des rectangles. Plus d'informations...

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

Fonctions publiques

QCanvasBoxShadow()
QCanvasBoxShadow(const QRectF &rect, float radius = 0.0f, float blur = 0.0f, const QColor &color = QColorConstants::Black)
QCanvasBoxShadow(float x, float y, float width, float height, float radius = 0.0f, float blur = 0.0f, const QColor &color = QColorConstants::Black)
float blur() const
float bottomLeftRadius() const
float bottomRightRadius() const
QRectF boundingRect() const
QColor color() const
float radius() const
QRectF rect() const
void setBlur(float blur)
void setBottomLeftRadius(float radius)
void setBottomRightRadius(float radius)
void setColor(const QColor &color)
void setRadius(float radius)
void setRect(float x, float y, float width, float height)
void setRect(const QRectF &rect)
void setSpread(float spread)
void setTopLeftRadius(float radius)
void setTopRightRadius(float radius)
float spread() const
float topLeftRadius() const
float topRightRadius() const
bool operator!=(const QCanvasBoxShadow &lhs, const QCanvasBoxShadow &rhs)
QDataStream &operator<<(QDataStream &stream, const QCanvasBoxShadow &shadow)
bool operator==(const QCanvasBoxShadow &lhs, const QCanvasBoxShadow &rhs)
QDataStream &operator>>(QDataStream &stream, QCanvasBoxShadow &shadow)

Description détaillée

QCanvasBoxShadow est une brosse de rectangle arrondi avec un effet de flou. Les performances de QCanvasBoxShadow sont bien meilleures que celles d'une ombre générale qui crée une ombre/une lueur floue pour n'importe quel élément de forme, car elle utilise l'approche SDF.

Les caractéristiques de QCanvasBoxShadow sont similaires à celles de CSS box-shadow, avec des valeurs de rayon, d'étendue, de flou et de couleur. Le rendu correspond également à celui de CSS box-shadow, avec quelques différences notables pour rendre QCanvasBoxShadow aussi performant que possible. Le flou est calculé mathématiquement dans le shader plutôt que d'utiliser le flou gaussien, que les implémentations de box-shadow CSS utilisent souvent. Cela donne à l'ombre un aspect légèrement différent, en particulier lorsque la quantité de flou dépasse la moitié de la largeur/hauteur de l'ombre.

Voici des captures d'écran comparant le rendu de QCanvasBoxShadow et de CSS box-shadow dans le navigateur Chrome. Elles montrent comment des rayons de flou de 0, 10, 20 et 40 pixels affectent des ombres plus petites.

CSS box-shadow :

QCanvasBoxShadow :

Documentation des fonctions membres

QCanvasBoxShadow::QCanvasBoxShadow()

Construit une ombre de boîte par défaut. La position de l'ombre est (0, 0) et la taille (100, 100). Le rayon du coin de l'ombre est 0.0 et le flou 0.0. La couleur de l'ombre est Qt::black.

QCanvasBoxShadow::QCanvasBoxShadow(const QRectF &rect, float radius = 0.0f, float blur = 0.0f, const QColor &color = QColorConstants::Black)

Construit une ombre de boîte. La position et la taille de l'ombre sont définies par rect. Le rayon du coin de l'ombre est radius et le flou blur. La couleur de l'ombre est color.

QCanvasBoxShadow::QCanvasBoxShadow(float x, float y, float width, float height, float radius = 0.0f, float blur = 0.0f, const QColor &color = QColorConstants::Black)

Construit une ombre de boîte. La position de l'ombre est x, y et la taille width, height. Le rayon du coin de l'ombre est radius et le flou blur. La couleur de l'ombre est color.

float QCanvasBoxShadow::blur() const

Renvoie le flou de la boîte d'ombre.

Voir également setBlur().

float QCanvasBoxShadow::bottomLeftRadius() const

Renvoie le rayon inférieur gauche de la zone d'ombre. Si cette valeur est -1, la peinture de l'ombre utilisera la valeur de radius() pour ce coin. La valeur par défaut est -1.

Voir également setBottomLeftRadius().

float QCanvasBoxShadow::bottomRightRadius() const

Renvoie le rayon inférieur droit de la zone d'ombre. Si cette valeur est -1, la peinture de l'ombre utilisera la valeur de radius() pour ce coin. La valeur par défaut est -1.

Voir également setBottomRightRadius().

QRectF QCanvasBoxShadow::boundingRect() const

Renvoie la zone couverte par l'ombre. Cela prend en compte les ombres rect(), blur() et spread(). Si vous ne souhaitez pas utiliser la méthode d'aide QCanvasPainter::drawBoxShadow(), vous pouvez l'utiliser pour, par exemple, ajouter une taille correcte à QCanvasPainter::rect() dans le chemin.

Voir aussi setRect(), setBlur(), et setSpread().

QColor QCanvasBoxShadow::color() const

Renvoie la couleur de la zone d'ombre.

Voir également setColor().

float QCanvasBoxShadow::radius() const

Renvoie le rayon de la zone d'ombre.

Voir également setRadius().

QRectF QCanvasBoxShadow::rect() const

Renvoie la zone rectangulaire de la zone d'ombre.

Voir également setRect().

void QCanvasBoxShadow::setBlur(float blur)

Définit le flou de l'ombre à blur en pixels. La valeur par défaut est 0.0, ce qui signifie qu'il n'y a pas de flou.

Voir également blur().

void QCanvasBoxShadow::setBottomLeftRadius(float radius)

Définit le rayon du coin inférieur gauche à radius. La valeur par défaut est -1, ce qui signifie qu'aucun rayon individuel n'a été défini pour ce coin et que la valeur commune radius() est utilisée à la place.

Voir également bottomLeftRadius().

void QCanvasBoxShadow::setBottomRightRadius(float radius)

Définit le rayon du coin inférieur droit à radius. La valeur par défaut est -1, ce qui signifie qu'aucun rayon individuel n'a été défini pour ce coin et que la valeur commune radius() est utilisée à la place.

Voir également bottomRightRadius().

void QCanvasBoxShadow::setColor(const QColor &color)

Définit la couleur de l'ombre à color. La valeur par défaut est le noir avec une opacité totale.

Voir aussi color().

void QCanvasBoxShadow::setRadius(float radius)

Définit le rayon du coin de l'ombre à radius en pixels. La valeur par défaut est 0.0, ce qui signifie qu'il n'y a pas de rayon.

Voir également radius().

void QCanvasBoxShadow::setRect(float x, float y, float width, float height)

Définit la zone rectangulaire de la zone d'ombre à (x, y, width, height).

Voir également rect().

void QCanvasBoxShadow::setRect(const QRectF &rect)

Définit la zone rect de la boîte d'ombre à rect.

Il s'agit d'une fonction surchargée.

void QCanvasBoxShadow::setSpread(float spread)

Définit l'étendue de l'ombre à spread en pixels. La valeur par défaut est 0.0, ce qui signifie qu'il n'y a pas d'écart.

Voir également spread().

void QCanvasBoxShadow::setTopLeftRadius(float radius)

Définit le rayon du coin supérieur gauche à radius. La valeur par défaut est -1, ce qui signifie qu'aucun rayon individuel n'a été défini pour ce coin et que la valeur commune radius() est utilisée à la place.

Voir également topLeftRadius().

void QCanvasBoxShadow::setTopRightRadius(float radius)

Définit le rayon du coin supérieur droit à radius. La valeur par défaut est -1, ce qui signifie qu'aucun rayon individuel n'a été défini pour ce coin et que la valeur commune radius() est utilisée à la place.

Voir aussi topRightRadius().

float QCanvasBoxShadow::spread() const

Renvoie l'étendue de la zone d'ombre.

Voir également setSpread().

float QCanvasBoxShadow::topLeftRadius() const

Renvoie le rayon supérieur gauche de la zone d'ombre. Si cette valeur est -1, la peinture de l'ombre utilisera la valeur de radius() pour ce coin. La valeur par défaut est -1.

Voir également setTopLeftRadius().

float QCanvasBoxShadow::topRightRadius() const

Renvoie le rayon supérieur droit de la zone d'ombre. Si cette valeur est -1, la peinture de l'ombre utilisera la valeur de radius() pour ce coin. La valeur par défaut est -1.

Voir également setTopRightRadius().

Non-membres associés

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

Renvoie true si l'ombre de la boîte lhs est différente de rhs; false sinon.

Voir aussi operator==().

QDataStream &operator<<(QDataStream &stream, const QCanvasBoxShadow &shadow)

Écrit la donnée shadow 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).

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

Renvoie true si l'ombre de la boîte lhs est égale à rhs; false sinon.

Voir aussi operator!=().

QDataStream &operator>>(QDataStream &stream, QCanvasBoxShadow &shadow)

Lit la donnée shadow à 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).

© 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.