QBrush类
The QBrush class defines the fill pattern of shapes drawn by 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 QColor &color, Qt::BrushStyle style = Qt::SolidPattern) | |
QBrush(Qt::GlobalColor color, Qt::BrushStyle style = Qt::SolidPattern) | |
QBrush(const QColor &color, const QPixmap &pixmap) | |
QBrush(Qt::GlobalColor color, const QPixmap &pixmap) | |
QBrush(const QPixmap &pixmap) | |
QBrush(const QImage &image) | |
QBrush(const QGradient &gradient) | |
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=(const QBrush &brush) |
QBrush & | operator=(QBrush &&other) |
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 预定义的颜色之一,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。如果画笔的颜色、纹理和渐变中的颜色都具有 alpha 分量为 255,则该画笔被认为是完全不透明的。
描边 | 要指定线段和描边的样式和颜色,请使用 QPainter 的 pen,结合Qt::PenStyle 和Qt::GlobalColorQPainter 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。
成员函数文档
QBrush::QBrush()
构建一个默认的黑色画笔,样式为Qt::NoBrush(即此画笔不会填充形状)。
QBrush::QBrush(Qt::BrushStyle style)
构建一个具有指定样式的黑色画笔。
另请参阅setStyle。
QBrush::QBrush(const QColor &color, Qt::BrushStyle style = Qt::SolidPattern)
构建一个具有指定颜色和样式的画笔。
QBrush::QBrush(Qt::GlobalColor color, Qt::BrushStyle style = Qt::SolidPattern)
构建一个具有指定颜色和样式的画笔。
QBrush::QBrush(const QColor &color, const QPixmap &pixmap)
构建一个具有指定颜色和存储在pixmap中的自定义图案的画笔。
样式设置为Qt::TexturePattern。颜色仅对QBitmap起作用。
另请参阅setColor() 和 setTexture。
QBrush::QBrush(Qt::GlobalColor color, const QPixmap &pixmap)
构建一个具有指定颜色和存储在pixmap中的自定义图案的画笔。
样式设置为Qt::TexturePattern。颜色仅对QBitmap起作用。
另请参阅setColor() 和 setTexture。
QBrush::QBrush(const QPixmap &pixmap)
构建一个黑色颜色并设置给定的pixmap纹理的画笔。样式设置为Qt::TexturePattern。
另请参阅setTexture。
QBrush::QBrush(const QImage &image)
构建一个黑色颜色并设置给定的image纹理的画笔。样式设置为Qt::TexturePattern。
另请参阅setTextureImage。
QBrush::QBrush(const QGradient &gradient)
基于给定的gradient构建一个画笔。
画笔样式设置为相应的渐变样式( Qt::LinearGradientPattern、Qt::RadialGradientPattern 或 Qt::ConicalGradientPattern)。
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。如果以下条件满足,则画笔被认为是透明的:
void QBrush::setColor(const QColor &color)
将画笔颜色设置为指定的 颜色。
注意,如果样式是渐变,则调用 setColor() 不会有任何区别。如果样式是 Qt::TexturePattern 风格,除非当前纹理是 QBitmap,情况也是如此。
另请参阅 颜色。
void QBrush::setColor(Qt::GlobalColor color)
这是一个重载函数。
将画笔颜色设置为指定的 颜色。
void QBrush::setStyle(Qt::BrushStyle style)
将画笔样式设置为 样式。
另请参阅 样式。
void QBrush::setTexture(const QPixmap &pixmap)
将画笔位图设置为 位图。样式设置为 Qt::TexturePattern。
对于单色位图,即 QPixmap::depth() == 1 (QBitmaps),当前画笔颜色将只起作用。
另请参阅 纹理。
void QBrush::setTextureImage(const QImage &image)
将画笔图像设置为 图像。样式设置为 Qt::TexturePattern。
请注意,与使用 setTexture() 与 QBitmap 相比,当前画笔颜色对单色图像没有任何影响。如果您想更改单色图像画笔的颜色,可以将图像转换为 QBitmap 使用 QBitmap::fromImage()
并将得到的 QBitmap 设置为纹理,或者改变图像的颜色表条目。
另请参阅 纹理图像 和 setTexture。
void QBrush::setTransform(const QTransform &matrix)
将 矩阵 设置为当前画笔的显式转换矩阵。画笔转换矩阵与 QPainter 转换矩阵合并,以产生最终结果。
另请参阅 转换。
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
将画笔作为QVariant返回。
bool QBrush::operator!=(const QBrush &brush) const
如果画笔与给定的brush不同,则返回true
;否则返回false
。
如果两个画笔具有不同的样式、颜色、变换,或者根据样式具有不同的位图或渐变,则两个画笔是不同的。
另请参阅operator==。
QBrush &QBrush::operator=(const QBrush &brush)
将给定的brush赋值给this画笔,并返回对this画笔的引用。
[noexcept]
QBrush &QBrush::operator=(QBrush &&other)
移动赋值other到此QBrush实例。
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 数据类型。
© 2024 The Qt Company Ltd。在本文档中包含的贡献作品的版权归各自所有者所有。提供的文档受自由软件基金会发布的GNU自由文档许可证版本1.3条款许可。Qt及其相关标志是芬兰和/或其他国家/地区的The Qt Company Ltd.的商标。所有其他商标均为各自所有者的财产。