QBrush 类

QBrush 类定义形状的填充图案,绘制通过 QPainter . 更多...

Header: #include <QBrush>
CMake: find_package(Qt6 COMPONENTS Gui REQUIRED)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui

公共函数

QBrush (const QGradient & gradient )
QBrush (const QBrush & other )
QBrush (const QImage & image )
QBrush (const QPixmap & pixmap )
QBrush (Qt::GlobalColor color , const QPixmap & pixmap )
QBrush (const QColor & color , const QPixmap & pixmap )
QBrush (Qt::GlobalColor color , Qt::BrushStyle style = Qt::SolidPattern)
QBrush (const QColor & color , Qt::BrushStyle style = Qt::SolidPattern)
QBrush (Qt::BrushStyle style )
QBrush ()
QBrush & operator= (QBrush && other )
QBrush & operator= (const QBrush & brush )
~QBrush ()
const QColor & color () const
const QGradient * gradient () const
bool isOpaque () const
void setColor (const QColor & color )
void setColor (Qt::GlobalColor color )
void setStyle (Qt::BrushStyle style )
void setTexture (const QPixmap & pixmap )
void setTextureImage (const QImage & image )
void setTransform (const QTransform & matrix )
Qt::BrushStyle style () const
void swap (QBrush & other )
QPixmap texture () const
QImage textureImage () const
QTransform transform () const
QVariant operator QVariant () const
bool operator!= (const QBrush & brush ) const
bool operator== (const QBrush & brush ) const
QDataStream & operator<< (QDataStream & stream , const QBrush & brush )
QDataStream & operator>> (QDataStream & stream , QBrush & brush )

详细描述

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.

Brush Styles

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 () 和 setColor () 函数,分别。

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 ,和 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);
							

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 .

isOpaque () 函数返回 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.
Outlines 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 描绘系统 .

另请参阅 Qt::BrushStyle , QPainter ,和 QColor .

成员函数文档编制

QBrush:: QBrush (const QGradient & gradient )

Constructs a brush based on the given gradient .

The brush style is set to the corresponding gradient style (either Qt::LinearGradientPattern , Qt::RadialGradientPattern or Qt::ConicalGradientPattern ).

QBrush:: QBrush (const QBrush & other )

构造副本为 other .

QBrush:: QBrush (const QImage & image )

Constructs a brush with a black color and a texture set to the given image . The style is set to Qt::TexturePattern .

另请参阅 setTextureImage ().

QBrush:: QBrush (const QPixmap & pixmap )

Constructs a brush with a black color and a texture set to the given pixmap . The style is set to Qt::TexturePattern .

另请参阅 setTexture ().

QBrush:: QBrush ( Qt::GlobalColor color , const QPixmap & pixmap )

构造笔刷采用给定 color and the custom pattern stored in pixmap .

The style is set to Qt::TexturePattern . The color will only have an effect for QBitmaps.

另请参阅 setColor () 和 setTexture ().

QBrush:: QBrush (const QColor & color , const QPixmap & pixmap )

构造笔刷采用给定 color and the custom pattern stored in pixmap .

The style is set to Qt::TexturePattern . The color will only have an effect for QBitmaps.

另请参阅 setColor () 和 setTexture ().

QBrush:: QBrush ( Qt::GlobalColor color , Qt::BrushStyle style = Qt::SolidPattern)

构造笔刷采用给定 color and style .

另请参阅 setColor () 和 setStyle ().

QBrush:: QBrush (const QColor & color , Qt::BrushStyle style = Qt::SolidPattern)

构造笔刷采用给定 color and style .

另请参阅 setColor () 和 setStyle ().

QBrush:: QBrush ( Qt::BrushStyle style )

Constructs a black brush with the given style .

另请参阅 setStyle ().

QBrush:: QBrush ()

Constructs a default black brush with the style Qt::NoBrush (i.e. this brush will not fill shapes).

[since 5.2] QBrush &QBrush:: operator= ( QBrush && other )

移动赋值 other 到此 QBrush 实例。

该函数在 Qt 5.2 引入。

QBrush &QBrush:: operator= (const QBrush & brush )

赋值给定 brush to this brush and returns a reference to this brush.

QBrush:: ~QBrush ()

Destroys the brush.

const QColor &QBrush:: color () const

Returns the brush color.

另请参阅 setColor ().

const QGradient *QBrush:: gradient () const

Returns the gradient describing this brush.

bool QBrush:: isOpaque () const

返回 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.
  • It is an extended radial gradient.

void QBrush:: setColor (const QColor & color )

Sets the brush color to the given color .

Note that 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 .

另请参阅 color ().

void QBrush:: setColor ( Qt::GlobalColor color )

这是重载函数。

Sets the brush color to the given color .

void QBrush:: setStyle ( Qt::BrushStyle style )

Sets the brush style to style .

另请参阅 style ().

void QBrush:: setTexture (const QPixmap & pixmap )

Sets the brush pixmap to pixmap . The style is set to Qt::TexturePattern .

The current brush color will only have an effect for monochrome pixmaps, i.e. for QPixmap::depth () == 1 ( QBitmaps ).

另请参阅 texture ().

void QBrush:: setTextureImage (const QImage & image )

Sets the brush image to image . The style is set to Qt::TexturePattern .

Note the current brush color will not have any affect on monochrome images, as opposed to calling setTexture () with a QBitmap . If you want to change the color of monochrome image brushes, either convert the image to QBitmap with QBitmap::fromImage() and set the resulting QBitmap as a texture, or change the entries in the color table for the image.

另请参阅 textureImage () 和 setTexture ().

void QBrush:: setTransform (const QTransform & matrix )

设置 matrix as an explicit transformation matrix on the current brush. The brush transformation matrix is merged with QPainter transformation matrix to produce the final result.

另请参阅 transform ().

Qt::BrushStyle QBrush:: style () const

Returns the brush style.

另请参阅 setStyle ().

void QBrush:: swap ( QBrush & other )

Swaps brush other with this brush. This operation is very fast and never fails.

QPixmap QBrush:: texture () const

Returns the custom brush pattern, or a null pixmap if no custom brush pattern has been set.

另请参阅 setTexture ().

QImage QBrush:: textureImage () const

Returns the custom brush pattern, or a null image if no custom brush pattern has been set.

If the texture was set as a QPixmap it will be converted to a QImage .

另请参阅 setTextureImage ().

QTransform QBrush:: transform () const

Returns the current transformation matrix for the brush.

另请参阅 setTransform ().

QVariant QBrush:: operator QVariant () const

Returns the brush as a QVariant

bool QBrush:: operator!= (const QBrush & brush ) const

返回 true if the brush is different from the given brush ;否则返回 false .

Two brushes are different if they have different styles, colors or transforms or different pixmaps or gradients depending on the style.

另请参阅 operator== ().

bool QBrush:: operator== (const QBrush & brush ) const

返回 true if the brush is equal to the given brush ;否则返回 false .

Two brushes are equal if they have equal styles, colors and transforms and equal pixmaps or gradients depending on the style.

另请参阅 operator!= ().

相关非成员

QDataStream & operator<< ( QDataStream & stream , const QBrush & brush )

写入给定 brush 到给定 stream and returns a reference to the stream .

另请参阅 序列化 Qt 数据类型 .

QDataStream & operator>> ( QDataStream & stream , QBrush & brush )

Reads the given brush from the given stream and returns a reference to the stream .

另请参阅 序列化 Qt 数据类型 .