En esta página

QCanvasBoxShadow Class

QCanvasBoxShadow es un pincel para pintar sombras rectangulares / brillos. Más...

Cabecera: #include <QCanvasBoxShadow>
CMake: find_package(Qt6 REQUIRED COMPONENTS CanvasPainter)
target_link_libraries(mytarget PRIVATE Qt6::CanvasPainter)
Desde: Qt 6.11
Hereda de: QCanvasBrush
Estado: Technical Preview

Funciones públicas

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)

Descripción Detallada

QCanvasBoxShadow es un pincel de rectángulo redondeado con desenfoque aplicado. El rendimiento de QCanvasBoxShadow es mucho mejor que el de una sombra general que crea una sombra/brillo borroso de cualquier elemento con forma, ya que utiliza el enfoque SDF.

Las características de QCanvasBoxShadow son similares a las de CSS box-shadow, con valores de radio, dispersión, desenfoque y color. La salida de renderizado también coincide con el CSS box-shadow, con pocas diferencias notables para hacer el QCanvasBoxShadow tan alto rendimiento como sea posible. El desenfoque se calcula matemáticamente en el sombreador en lugar de utilizar el desenfoque gaussiano, que las implementaciones de CSS box-shadow utilizan a menudo. Esto hace que la sombra tenga un aspecto ligeramente diferente, especialmente cuando la cantidad de desenfoque supera la mitad de la anchura / altura de la sombra.

Aquí hay capturas de pantalla para comparar la salida de renderizado de QCanvasBoxShadow y CSS box-shadow en el navegador Chrome. Muestran cómo los radios de desenfoque de 0, 10, 20 y 40 píxeles afectan a las sombras más pequeñas.

CSS box-shadow:

QCanvasBoxShadow:

Documentación de la Función Miembro

QCanvasBoxShadow::QCanvasBoxShadow()

Construye una sombra de caja por defecto. La posición de la sombra de caja es (0, 0) y el tamaño (100, 100). El radio de la esquina de la sombra es 0.0 y el desenfoque 0.0. El color de la sombra es Qt::black.

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

Construye una sombra de caja. La posición y el tamaño de la sombra de caja se definen en rect. El radio de la esquina de la sombra es radius y el desenfoque blur. El color de la sombra es color.

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

Construye una sombra de caja. La posición de la sombra de caja es x, y y el tamaño width, height. El radio de la esquina de la sombra es radius y el desenfoque blur. El color de la sombra es color.

float QCanvasBoxShadow::blur() const

Devuelve el desenfoque de la caja de sombra.

Véase también setBlur().

float QCanvasBoxShadow::bottomLeftRadius() const

Devuelve el radio inferior izquierdo de la caja de sombra. Cuando es -1, el pintado de la sombra utilizará el valor de radius() para esta esquina. El valor por defecto es -1.

Véase también setBottomLeftRadius().

float QCanvasBoxShadow::bottomRightRadius() const

Devuelve el radio inferior derecho de la caja de sombra. Cuando es -1, el pintado de la sombra utilizará el valor de radius() para esta esquina. El valor por defecto es -1.

Véase también setBottomRightRadius().

QRectF QCanvasBoxShadow::boundingRect() const

Devuelve el área cubierta por la sombra. Esto tiene en cuenta la sombra rect(), blur() y spread(). Si no desea utilizar QCanvasPainter::drawBoxShadow() método de ayuda, esto se puede utilizar para, por ejemplo, la adición de tamaño correcto QCanvasPainter::rect() en la ruta.

Véase también setRect(), setBlur() y setSpread().

QColor QCanvasBoxShadow::color() const

Devuelve el color de la caja de sombra.

Véase también setColor().

float QCanvasBoxShadow::radius() const

Devuelve el radio de la caja de sombra.

Véase también setRadius().

QRectF QCanvasBoxShadow::rect() const

Devuelve el área rectangular de la caja de sombra.

Véase también setRect().

void QCanvasBoxShadow::setBlur(float blur)

Establece el desenfoque de la sombra en blur en píxeles. El valor por defecto es 0.0 que significa sin desenfoque.

Véase también blur().

void QCanvasBoxShadow::setBottomLeftRadius(float radius)

Establece el radio de la esquina inferior izquierda en radius. El valor por defecto es -1, lo que significa que no se ha establecido un radio individual para esta esquina, y en su lugar se utiliza radius() común.

Véase también bottomLeftRadius().

void QCanvasBoxShadow::setBottomRightRadius(float radius)

Establece el radio de la esquina inferior derecha en radius. El valor por defecto es -1, lo que significa que no se ha establecido un radio individual para esta esquina, y en su lugar se utiliza radius() común.

Véase también bottomRightRadius().

void QCanvasBoxShadow::setColor(const QColor &color)

Establece el color de la sombra en color. El valor por defecto es negro con opacidad total.

Véase también color().

void QCanvasBoxShadow::setRadius(float radius)

Establece el radio de la esquina de la sombra en radius en píxeles. El valor por defecto es 0.0 que significa sin radio.

Véase también radius().

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

Establece el área rectangular de la caja de sombra en (x, y, width, height).

Véase también rect().

void QCanvasBoxShadow::setRect(const QRectF &rect)

Establece el área rectangular de la caja de sombra en rect.

Se trata de una función sobrecargada.

void QCanvasBoxShadow::setSpread(float spread)

Establece la dispersión de la sombra en spread en píxeles. El valor por defecto es 0.0 que significa sin dispersión.

Véase también spread().

void QCanvasBoxShadow::setTopLeftRadius(float radius)

Establece el radio de la esquina superior izquierda en radius. El valor por defecto es -1, lo que significa que no se ha establecido un radio individual para esta esquina, y en su lugar se utiliza radius() común.

Véase también topLeftRadius().

void QCanvasBoxShadow::setTopRightRadius(float radius)

Establece el radio de la esquina superior derecha en radius. El valor por defecto es -1, lo que significa que no se ha establecido un radio individual para esta esquina, y en su lugar se utiliza radius() común.

Véase también topRightRadius().

float QCanvasBoxShadow::spread() const

Devuelve la extensión de la caja de sombra.

Véase también setSpread().

float QCanvasBoxShadow::topLeftRadius() const

Devuelve el radio superior izquierdo de la caja de sombra. Cuando es -1, el pintado de la sombra utilizará el valor de radius() para esta esquina. El valor por defecto es -1.

Véase también setTopLeftRadius().

float QCanvasBoxShadow::topRightRadius() const

Devuelve el radio superior derecho de la caja de sombra. Cuando es -1, el pintado de la sombra utilizará el valor de radius() para esta esquina. El valor por defecto es -1.

Véase también setTopRightRadius().

No miembros relacionados

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

Devuelve true si la sombra de caja lhs es diferente de rhs; false en caso contrario.

Véase también operator==().

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

Escribe el shadow dado en el stream dado y devuelve una referencia al stream.

Véase también Serializar tipos de datos Qt.

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

Devuelve true si la sombra de caja lhs es igual a rhs; false en caso contrario.

Véase también operator!=().

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

Lee el shadow dado del stream dado y devuelve una referencia al stream.

Véase también Serializar tipos de datos 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.