QBrush Class
QBrush 类定义了由QPainter 绘制的图形的填充图案。更多
头文件: | #include <QBrush> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
qmake: | QT += gui |
- 所有成员(包括继承成员)列表
- QBrush 属于绘画类和隐式共享类。
公共函数
QBrush() | |
QBrush(Qt::BrushStyle style) | |
QBrush(const QGradient &gradient) | |
QBrush(const QImage &image) | |
QBrush(const QPixmap &pixmap) | |
QBrush(Qt::GlobalColor color, Qt::BrushStyle style = Qt::SolidPattern) | |
QBrush(Qt::GlobalColor color, const QPixmap &pixmap) | |
QBrush(const QColor &color, Qt::BrushStyle style = Qt::SolidPattern) | |
QBrush(const QColor &color, const QPixmap &pixmap) | |
QBrush(const QBrush &other) | |
~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 |
QBrush & | operator=(QBrush &&other) |
QBrush & | operator=(const QBrush &brush) |
(since 6.9) QBrush & | operator=(QColor color) |
(since 6.9) QBrush & | operator=(Qt::BrushStyle style) |
(since 6.9) QBrush & | operator=(Qt::GlobalColor color) |
bool | operator==(const QBrush &brush) const |
相关非成员
QDataStream & | operator<<(QDataStream &stream, const QBrush &brush) |
QDataStream & | operator>>(QDataStream &stream, QBrush &brush) |
详细描述
画笔有样式、颜色、渐变和纹理。
笔刷style() 使用Qt::BrushStyle 枚举定义填充样式。默认的笔刷样式是Qt::NoBrush (取决于您如何构建笔刷)。这种样式告诉画笔不要填充形状。填充的标准样式是Qt::SolidPattern 。笔刷样式可以在创建笔刷时使用相应的构造函数进行设置,此外,setStyle() 函数还提供了在创建笔刷后更改样式的方法。
笔刷color() 定义了填充图案的颜色。颜色可以是 Qt XML 预定义的颜色之一Qt::GlobalColor ,也可以是任何其他自定义的颜色QColor 。当前设置的颜色可分别使用color() 和setColor() 函数获取和更改。
gradient() 定义了当前样式为Qt::LinearGradientPattern 、Qt::RadialGradientPattern 或Qt::ConicalGradientPattern 时使用的渐变填充。创建 QBrush 时,将QGradient 作为构造函数参数即可创建渐变笔刷。Qt 提供了三种不同的渐变效果:QLinearGradient、QConicalGradient 和QRadialGradient - 它们都继承了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() 定义了当前样式为Qt::TexturePattern 时使用的像素图。您可以通过在创建画笔时提供像素图或使用setTexture() 来创建带有纹理的画笔。
请注意,应用setTexture() 会使style() ==Qt::TexturePattern ,而与之前的样式设置无关。此外,如果样式是渐变的,调用setColor() 也不会有任何影响。如果样式是Qt::TexturePattern 样式,情况也一样,除非当前纹理是QBitmap 。
如果画笔完全不透明,则isOpaque() 函数返回true
,否则返回 false。在以下情况下,画笔被认为是不透明的
![]() | 要指定线条和轮廓的样式和颜色,可使用QPainter'spen 与Qt::PenStyle 和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); 请注意,默认情况下,QPainter 会在绘制形状时渲染轮廓(使用当前设置的钢笔)。使用 |
有关绘画的更多信息,请参阅 "绘画系统"。
另请参阅 Qt::BrushStyle,QPainter, 和QColor 。
成员函数文档
[since 6.9]
QBrush &QBrush::operator=(QColor color)
[since 6.9]
QBrush &QBrush::operator=(Qt::GlobalColor color)
这是一个重载函数。
使此笔刷成为给定color 的实心图案笔刷,并返回此笔刷的引用。
此函数在 Qt 6.9 中引入。
QBrush::QBrush()
创建一个默认的黑色笔刷,样式为Qt::NoBrush (即该笔刷不会填充形状)。
QBrush::QBrush(Qt::BrushStyle style)
用给定的style 构建黑色画笔。
另请参见 setStyle().
QBrush::QBrush(const QGradient &gradient)
根据给定的gradient 构建一个笔刷。
笔刷样式被设置为相应的渐变样式(Qt::LinearGradientPattern,Qt::RadialGradientPattern 或Qt::ConicalGradientPattern )。
QBrush::QBrush(const QImage &image)
创建一个黑色画笔,纹理设置为给定的image 。样式设置为Qt::TexturePattern 。
另请参阅 setTextureImage().
QBrush::QBrush(const QPixmap &pixmap)
创建一个黑色画笔,纹理设置为给定的pixmap 。样式设置为Qt::TexturePattern 。
另请参阅 setTexture().
QBrush::QBrush(Qt::GlobalColor color, Qt::BrushStyle style = Qt::SolidPattern)
用给定的color 和style 构建一个笔刷。
QBrush::QBrush(Qt::GlobalColor color, const QPixmap &pixmap)
使用给定的color 和存储在pixmap 中的自定义图案构建画笔。
样式设置为Qt::TexturePattern 。颜色只对 QBitmaps 有效。
另请参阅 setColor() 和setTexture()。
QBrush::QBrush(const QColor &color, Qt::BrushStyle style = Qt::SolidPattern)
用给定的color 和style 构建一个笔刷。
QBrush::QBrush(const QColor &color, const QPixmap &pixmap)
使用给定的color 和存储在pixmap 中的自定义图案构建画笔。
样式设置为Qt::TexturePattern 。颜色只对 QBitmaps 有效。
另请参阅 setColor() 和setTexture()。
QBrush::QBrush(const QBrush &other)
构造other 的副本。
[noexcept]
QBrush::~QBrush()
摧毁刷子
const QColor &QBrush::color() const
返回笔刷颜色。
另请参阅 setColor().
const QGradient *QBrush::gradient() const
返回描述此笔刷的渐变效果。
bool QBrush::isOpaque() const
如果笔刷完全不透明,则返回true
,否则返回 false。在以下情况下,笔刷被认为是不透明的
- color() 的 alpha 分量为 255。
- 其texture() 没有 alpha 通道,也不是QBitmap 。
- gradient() 中的颜色的 alpha 分量都是 255。
- 这是一个扩展的径向渐变。
void QBrush::setColor(const QColor &color)
将笔刷颜色设置为给定的color 。
请注意,如果样式是渐变的,调用 setColor() 不会有任何影响。如果样式是Qt::TexturePattern 样式,情况也一样,除非当前纹理是QBitmap 。
另请参阅 color() 。
void QBrush::setColor(Qt::GlobalColor color)
这是一个重载函数。
将笔刷颜色设置为给定的color 。
void QBrush::setStyle(Qt::BrushStyle style)
将画笔样式设置为style 。
另请参阅 style() 。
void QBrush::setTexture(const QPixmap &pixmap)
将画笔像素图设置为pixmap 。样式设置为Qt::TexturePattern 。
当前画笔颜色只对单色像素图有效,即QPixmap::depth() == 1 (QBitmaps)。
另请参阅 texture() 。
void QBrush::setTextureImage(const QImage &image)
将画笔图像设置为image 。样式设置为Qt::TexturePattern 。
请注意,与使用QBitmap 调用setTexture() 不同,当前画笔颜色不会对单色图像产生任何影响。如果要更改单色图像画笔的颜色,可以使用QBitmap::fromImage()
将图像转换为QBitmap ,并将生成的QBitmap 设置为纹理,或者更改图像颜色表中的条目。
另请参阅 textureImage() 和setTexture()。
void QBrush::setTransform(const QTransform &matrix)
将matrix 设置为当前画笔的显式变换矩阵。笔刷变换矩阵会与QPainter 变换矩阵合并,生成最终结果。
另请参阅 transform().
Qt::BrushStyle QBrush::style() const
返回笔刷样式。
另请参阅 setStyle().
[noexcept]
void QBrush::swap(QBrush &other)
将该刷子与other 互换。这一操作非常快速,而且从未出现过故障。
QPixmap QBrush::texture() const
返回自定义画笔模式,如果没有设置自定义画笔模式,则返回空像素图。
另请参见 setTexture()。
QImage QBrush::textureImage() const
返回自定义画笔图案,如果没有设置自定义画笔图案,则返回空图像。
另请参阅 setTextureImage()。
QTransform QBrush::transform() const
返回画笔的当前变换矩阵。
另请参见 setTransform()。
QVariant QBrush::operator QVariant() const
bool QBrush::operator!=(const QBrush &brush) const
如果笔刷与给定的brush 不同,则返回true
;否则返回false
。
如果两个画笔具有不同的样式、颜色或变换,或根据样式具有不同的像素图或渐变,则它们是不同的。
另请参阅 operator==().
[noexcept]
QBrush &QBrush::operator=(QBrush &&other)
Move-assignsother 到此QBrush 实例。
QBrush &QBrush::operator=(const QBrush &brush)
将给定的brush 分配给此笔刷,并返回此笔刷的引用。
[since 6.9]
QBrush &QBrush::operator=(Qt::BrushStyle style)
这是一个重载函数。
使此笔刷成为给定style 的黑色笔刷,并返回此笔刷的引用。
此函数在 Qt 6.9 中引入。
bool QBrush::operator==(const QBrush &brush) const
如果笔刷等于给定的brush ,则返回true
;否则返回false
。
如果两个画笔具有相同的样式、颜色和变换,并且像素贴图或渐变相同(取决于样式),则这两个画笔是相等的。
另请参阅 operator!=() 。
相关非会员
QDataStream &operator<<(QDataStream &stream, const QBrush &brush)
将给定的brush 写入给定的stream ,并返回对stream 的引用。
另请参阅 序列化 Qt 数据类型。
QDataStream &operator>>(QDataStream &stream, QBrush &brush)
从给定的stream 中读取给定的brush ,并返回对stream 的引用。
另请参阅 序列化 Qt 数据类型。
© 2025 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.