QBrush
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 QBrush &other) QBrush(const QGradient &gradient) ~QBrush() const QColor & color() const const QGradient * gradient() const bool isOpaque() const const QMatrix & matrix() const void setColor(const QColor &color) void setColor(Qt::GlobalColor color) void setMatrix(const QMatrix &matrix) 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
QBrush类定义QPaint绘制的形状的填充图案。
画笔有风格、颜色、渐变和纹理。
笔刷样式()使用Qt::brushtyle枚举定义填充图案。默认的笔刷样式是Qt::NoBrush(取决于构建笔刷的方式)。这种风格告诉画家不要填充形状。填充的标准样式是Qt::SolidPattern。当使用适当的构造函数创建画笔时,可以设置样式,此外,setStyle()函数提供了在构建画笔后更改样式的方法。
笔刷颜色()定义填充图案的颜色。颜色可以是Qt的预定义颜色之一,Qt::GlobalColor,也可以是任何其他自定义QColor。可以分别使用color()和setColor()函数检索和更改当前设置的颜色。
gradient()定义当前样式为Qt::LinearGradientPattern、Qt::RadialGradientPattern或Qt::ConicalGradientPattern时使用的渐变填充。在创建QBrush时,通过将QGradient作为构造函数参数来创建渐变笔刷。Qt提供了三种不同的梯度:QlineArgradent、qconicalGradent和qradialGradent——所有这些都继承了QGradent。
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时使用的pixmap。可以通过在创建笔刷时提供pixmap或使用setTexture()来创建具有纹理的笔刷。
请注意,无论以前的样式设置如何,应用setTexture()都会使style()==Qt::TexturePattern。此外,如果样式为渐变,则调用setColor()不会产生任何影响。如果样式为Qt::TexturePattern样式,则情况也是如此,除非当前纹理是QBitmap。
如果笔刷完全不透明,则isOpaque()函数返回true,否则返回false。在下列情况下,刷子被视为不透明:
color()的alpha分量是255。
它的纹理()没有alpha通道,也不是QBitmap。
渐变()中的颜色都有一个255的alpha分量。
要指定线条和轮廓的样式和颜色,请将QPaint的画笔与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);
请注意,默认情况下,QPaint在绘制形状时渲染轮廓(使用当前设置的笔)。使用油漆工。setPen(Qt::NoPen)禁用此行为。
############################