- Qt 6.12
- Qt Canvas Painter
- C++ Classes
- QCanvasBoxGradient
- Qt Canvas Painter | Commercial or GPLv3

# QCanvasBoxGradient Class

QCanvasBoxGradient is a brush for box gradient painting. More...

Header: | `#include <QCanvasBoxGradient>`
CMake: | `find_package(Qt6 REQUIRED COMPONENTS CanvasPainter)` `target_link_libraries(mytarget PRIVATE Qt6::CanvasPainter)`
Since: | Qt 6.11
Inherits: | QCanvasGradient

- List of all members, including inherited members

## Public Functions

| QCanvasBoxGradient()
| QCanvasBoxGradient(const QRectF &rect)
| QCanvasBoxGradient(qreal x, qreal y, qreal width, qreal height)
| QCanvasBoxGradient(const QCanvasBoxGradient &)
| QCanvasBoxGradient(QCanvasBoxGradient &&)
| ~QCanvasBoxGradient()
qreal | feather() const
qreal | radius() const
QRectF | rect() const
void | setFeather(qreal feather)
void | setRadius(qreal radius)
void | setRect(qreal x, qreal y, qreal width, qreal height)
void | setRect(const QRectF &rect)
QCanvasBoxGradient & | operator=(QCanvasBoxGradient &&)
QCanvasBoxGradient & | operator=(const QCanvasBoxGradient &)

## Detailed Description

Box gradient interpolate colors between start and end points, creating a rounded rectangle shaped gradient. With the setRadius() and setFeather() the roundness and softness of the gradient can be controlled.

Here is a simple example:

     QRectF rect(20, 20, 160, 160);
     QCanvasBoxGradient bg(rect);
     bg.setFeather(20);
     bg.setRadius(50);
     bg.setColorAt(0.0, "#1a2a6c");
     bg.setColorAt(0.2, "#fdbb2d");
     bg.setColorAt(1.0, QColorConstants::Transparent);
     p->setFillStyle(bg);
     p->fillRect(rect);

Note: When QCanvasBoxGradient is used to paint round rectangle, it is usually better to use QCanvasPainter::rect() than QCanvasPainter::roundRect() as the rounding comes from the brush rather than the path. This avoids creating extra vertices and thus performs better.

## Member Function Documentation

### QCanvasBoxGradient::QCanvasBoxGradient()

Constructs a default box gradient. Position of gradient is (0, 0) and size (100, 100) Gradient feather is 10.0. Gradient radius is 0.0.

### QCanvasBoxGradient::QCanvasBoxGradient(const QRectF &rect)

Constructs a box gradient. Position and size of gradient is rect. Gradient feather is 10.0 and radius is 0.0.

See also setFeather() and setRadius().

### QCanvasBoxGradient::QCanvasBoxGradient(qreal x, qreal y, qreal width, qreal height)

Constructs a box gradient. Position of gradient is ( x, y) and size ( width, height) Gradient feather is 10.0 and radius is 0.0.

See also setFeather() and setRadius().

### `[constexpr noexcept default]` QCanvasBoxGradient::QCanvasBoxGradient(const QCanvasBoxGradient &)

Copy-constructs an instance of QCanvasBoxGradient.

### `[constexpr noexcept default]` QCanvasBoxGradient::QCanvasBoxGradient(QCanvasBoxGradient &&)

Move-constructs an instance of QCanvasBoxGradient.

### `[constexpr noexcept default]` QCanvasBoxGradient::~QCanvasBoxGradient()

Destroys the instance of QCanvasBoxGradient.

### qreal QCanvasBoxGradient::feather() const

Returns the feather of the box gradient.

See also setFeather().

### qreal QCanvasBoxGradient::radius() const

Returns the radius of the box gradient.

See also setRadius().

### QRectF QCanvasBoxGradient::rect() const

Returns the rectangle area of the box gradient.

See also setRect().

### void QCanvasBoxGradient::setFeather(qreal feather)

Sets the feather of box gradient to feather.

See also feather().

### void QCanvasBoxGradient::setRadius(qreal radius)

Sets the radius of box gradient to radius. The maximum radius is half of width or height of rect(), depending on which one is smaller.

See also radius().

### void QCanvasBoxGradient::setRect(qreal x, qreal y, qreal width, qreal height)

Sets the rectangle of box gradient to position ( x, y) and size ( width, height).

See also rect().

### void QCanvasBoxGradient::setRect(const QRectF &rect)

Sets the rectangle of box gradient to rect.

This is an overloaded function.

### `[noexcept default]` QCanvasBoxGradient &QCanvasBoxGradient::operator=(QCanvasBoxGradient &&)

Move-assigns other to this QCanvasBoxGradient instance.

### `[noexcept default]` QCanvasBoxGradient &QCanvasBoxGradient::operator=(const QCanvasBoxGradient &)

Copy-assigns other to this QCanvasBoxGradient instance.