|  | Home · Overviews · Examples

# QBrush Class Reference
[com.trolltech.qt.gui module]

The `QBrush` class defines the fill pattern of shapes drawn by `QPainter`. More...

## Detailed Description

The `QBrush` class defines the fill pattern of shapes drawn by `QPainter`.

A brush has a style, a color, a gradient and a texture.

The brush `style` defines the fill pattern using the Qt::BrushStyle enum. The default brush style is Qt::NoBrush (depending on how you construct a brush). This style tells the painter to not fill shapes. The standard style for filling is Qt::SolidPattern. The style can be set when the brush is created using the appropriate constructor, and in addition the `setStyle` function provides means for altering the style once the brush is constructed.

The brush `color` defines the color of the fill pattern. The color can either be one of Qt's predefined colors, Qt::GlobalColor, or any other custom `QColor`. The currently set color can be retrieved and altered using the `color` and `setColor` functions, respectively.

The `gradient` defines the gradient fill used when the current style is either Qt::LinearGradientPattern, Qt::RadialGradientPattern or Qt::ConicalGradientPattern. Gradient brushes are created by giving a `QGradient` as a constructor argument when creating the `QBrush`. Qt provides three different gradients: `QLinearGradient`, `QConicalGradient`, and `QRadialGradient` - all of which inherit `QGradient`.

            QRadialGradient gradient(50, 50, 50, 50, 50);
            gradient.setColorAt(0, QColor::fromRgbF(0, 1, 0, 1));
            gradient.setColorAt(1, QColor::fromRgbF(0, 0, 0, 0));

            QBrush brush(gradient);

The `texture` defines the pixmap used when the current style is Qt::TexturePattern. You can create a brush with a texture by providing the pixmap when the brush is created or by using `setTexture`.

Note that applying `setTexture` makes `style` == Qt::TexturePattern, regardless of previous style settings. Also, calling `setColor` will not make a difference if the style is a gradient. The same is the case if the style is Qt::TexturePattern style unless the current texture is a `QBitmap`.

The `isOpaque` function returns true if the brush is fully opaque otherwise false. A brush is considered opaque if:

- The alpha component of the `color` is 255.
- Its `texture` does not have an alpha channel and is not a `QBitmap`.
- The colors in the `gradient` all have an alpha component that is 255.

| To specify the style and color of lines and outlines, use the `QPainter`'s pen combined with Qt::PenStyle and Qt::GlobalColor:
        QPainter painter(this);

        painter.setBrush(Qt::cyan);
        painter.setPen(Qt::darkCyan);
        painter.drawRect(0, 0, 100,100);

        painter.setBrush(Qt::NoBrush);
        painter.setPen(Qt::darkGreen);
        painter.drawRect(40, 40, 100, 100);
Note that, by default, `QPainter` renders the outline (using the currently set pen) when drawing shapes. Use `painter.setPen(Qt::NoPen)` to disable this behavior.

For more information about painting in general, see The Paint System documentation.

See also `Qt::BrushStyle`, `QPainter`, and `QColor`.