Sur cette page

QCanvasBoxShadow Class

QCanvasBoxShadow est un pinceau permettant de dessiner des ombres et des reflets rectangulaires. En savoir plus...

En-tête : #include <QCanvasBoxShadow>
CMake : find_package(Qt6 REQUIRED COMPONENTS CanvasPainter)
target_link_libraries(mytarget PRIVATE Qt6::CanvasPainter)
Depuis : Qt 6.11

Fonctions publiques

QCanvasBoxShadow()
QCanvasBoxShadow(const QRectF &rect)
QCanvasBoxShadow(qreal x, qreal y, qreal width, qreal height)
QCanvasBoxShadow(QCanvasBoxShadow &&)
qreal blur() const
qreal bottomLeftRadius() const
qreal bottomRightRadius() const
QRectF boundingRect() const
QColor color() const
qreal radius() const
QRectF rect() const
void setBlur(qreal blur)
void setBottomLeftRadius(qreal radius)
void setBottomRightRadius(qreal radius)
void setColor(QColor color)
void setRadius(qreal radius)
void setRect(qreal x, qreal y, qreal width, qreal height)
void setRect(const QRectF &rect)
void setSpread(qreal spread)
void setTopLeftRadius(qreal radius)
void setTopRightRadius(qreal radius)
qreal spread() const
qreal topLeftRadius() const
qreal 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 un pinceau rectangulaire arrondi avec un effet de flou appliqué. Les performances de QCanvasBoxShadow sont bien supérieures à celles d’une ombre classique qui crée une ombre ou une lueur floue autour d’un élément de n’importe quelle forme, car il utilise l’approche SDF.

Les caractéristiques de QCanvasBoxShadow sont similaires à celles de la propriété CSS `box-shadow`, avec des valeurs de rayon, d'étalement, de flou et de couleur. Le rendu final correspond également à celui de la propriété CSS `box-shadow`, à quelques différences notables près qui permettent d'optimiser au maximum les performances de QCanvasBoxShadow. Le flou est calculé mathématiquement dans le shader plutôt que d’utiliser un flou gaussien, comme c’est souvent le cas dans les implémentations de `box-shadow` en CSS. Cela donne à l’ombre un aspect légèrement différent, en particulier lorsque l’intensité du flou dépasse la moitié de la largeur ou de la hauteur de l’ombre.

Voici des captures d’écran permettant de comparer le rendu de QCanvasBoxShadow et de la propriété CSS `box-shadow` dans le navigateur Chrome. Elles montrent comment des rayons de flou de 0, 10, 20 et 40 pixels affectent les petites ombres.

CSS `box-shadow` :

Des rangées composées d'une barre noire et d'un point noir, avec un flou de l'ombre portée CSS de 0, 10, 20 et 40 pixels

QCanvasBoxShadow :

Des rangées composées d'une barre noire et d'un point noir, avec un flou QCanvasBoxShadow de 0, 10, 20 et 40 pixels

Documentation des fonctions membres

QCanvasBoxShadow::QCanvasBoxShadow()

Crée une ombre de boîte par défaut. La position de l'ombre de boîte est (0, 0) et sa taille (100, 100). Le rayon des coins de l'ombre est 0.0 et le flou 0.0. La couleur de l'ombre est Qt::black.

[explicit] QCanvasBoxShadow::QCanvasBoxShadow(const QRectF &rect)

Crée une ombre de type « boîte noire » dont la position est définie par ` rect`, sans rayon de courbure ni flou.

QCanvasBoxShadow::QCanvasBoxShadow(qreal x, qreal y, qreal width, qreal height)

Crée une ombre portée dont les coordonnées sont x et y et dont les dimensions sont width et height.

Voir également blur() et radius().

[constexpr noexcept default] QCanvasBoxShadow::QCanvasBoxShadow(QCanvasBoxShadow &&)

Crée par « move » une instance de ` QCanvasBoxShadow`.

qreal QCanvasBoxShadow::blur() const

Renvoie le flou de la « shadow box ».

Voir aussi setBlur().

qreal QCanvasBoxShadow::bottomLeftRadius() const

Renvoie le rayon du coin inférieur gauche de la boîte d'ombre. Lorsque cette valeur est définie sur -1, le tracé de l'ombre utilisera la valeur de radius() pour ce coin. La valeur par défaut est -1.

Voir également setBottomLeftRadius().

qreal QCanvasBoxShadow::bottomRightRadius() const

Renvoie le rayon du coin inférieur droit de la zone d'ombre. Lorsque cette valeur est définie sur -1, le tracé 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. Cette fonction prend en compte les méthodes d'rect, blur et spread. Si vous ne souhaitez pas utiliser la méthode d'aide QCanvasPainter::drawBoxShadow(), vous pouvez utiliser cette fonction, par exemple, pour ajouter un élément QCanvasPainter::rect() de taille appropriée dans le chemin.

Voir également setRect(), setBlur() et setSpread().

QColor QCanvasBoxShadow::color() const

Renvoie la couleur de la boîte d'ombre.

Voir aussi setColor().

qreal QCanvasBoxShadow::radius() const

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

Voir aussi setRadius().

QRectF QCanvasBoxShadow::rect() const

Renvoie l'aire (rectangle) de la « shadow box ».

Voir aussi setRect().

void QCanvasBoxShadow::setBlur(qreal blur)

Définit le flou de l'ombre sur 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(qreal radius)

Définit le rayon du coin inférieur gauche sur radius. La valeur par défaut est -1, ce qui signifie qu'aucun rayon spécifique 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(qreal radius)

Définit le rayon du coin inférieur droit à radius. La valeur par défaut est -1, ce qui signifie qu’aucun rayon spécifique 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(QColor color)

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

Voir également color().

void QCanvasBoxShadow::setRadius(qreal radius)

Définit le rayon des coins de l'ombre à radius en pixels. La valeur par défaut est 0.0, ce qui signifie « aucun rayon ».

Voir également radius().

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

Définit la zone rectangulaire de la « shadow box » sur (x, y, width, height).

Voir également rect().

void QCanvasBoxShadow::setRect(const QRectF &rect)

Définit la zone rectangulaire de la « shadow box » sur rect.

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

void QCanvasBoxShadow::setSpread(qreal 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'étendue.

Voir également spread().

void QCanvasBoxShadow::setTopLeftRadius(qreal radius)

Définit le rayon du coin supérieur gauche sur radius. La valeur par défaut est -1, ce qui signifie qu'aucun rayon spécifique 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(qreal radius)

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

Voir également topRightRadius().

qreal QCanvasBoxShadow::spread() const

Renvoie la largeur de la boîte d'ombre.

Voir aussi setSpread().

qreal QCanvasBoxShadow::topLeftRadius() const

Renvoie le rayon du coin supérieur gauche de la boîte d'ombre. Lorsque cette valeur est définie sur -1, le tracé de l'ombre utilisera la valeur de radius() pour ce coin. La valeur par défaut est -1.

Voir également setTopLeftRadius().

qreal QCanvasBoxShadow::topRightRadius() const

Renvoie le rayon du coin supérieur droit de la boîte d'ombre. Lorsque cette valeur est définie sur -1, le tracé de l'ombre utilisera la valeur de radius() pour ce coin. La valeur par défaut est -1.

Voir également setTopRightRadius().

Éléments connexes non membres

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

Renvoie « true » si l’ lhs de l’ombre portée diffère de « rhs » ; « false » dans le cas contraire.

Voir également operator==().

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

Écrit l'shadow on fournie dans l'stream on indiquée et renvoie une référence à l'stream on.

Voir également Sérialisation des types de données Qt.

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

Renvoie « true » si l'lhs de l'ombre portée est égale à « rhs » ; « false » dans le cas contraire.

Voir également operator!=().

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

Lit l'shadow on fournie à partir de l'stream on indiquée et renvoie une référence à l'stream on.

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.