PySide6.QtGui.QBrush

class QBrush

QBrush 类定义了由 QPainter 绘制的形状的填充模式。更多

概要

方法

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

警告

本节包含从C++自动翻译到Python的代码片段,可能包含错误。

画笔具有样式、颜色、渐变和纹理。

画笔 style() 使用 Qt::BrushStyle 枚举定义填充模式。默认的画笔样式是 Qt::NoBrush(取决于你如何构造画笔)。这种样式告诉画师不要填充形状。填充的标准样式是 Qt::SolidPattern。样式可以在创建画笔时使用适当的构造函数设置,此外,setStyle() 函数提供了在画笔构造后更改样式的方法。

../../_images/brush-styles1.png

画笔 color() 定义了填充图案的颜色。颜色可以是 Qt 的预定义颜色之一,Qt::GlobalColor,或任何其他自定义的 QColor。当前设置的颜色可以分别使用 color()setColor() 函数来获取和修改。

gradient() 定义了当当前样式为 Qt::LinearGradientPattern、Qt::RadialGradientPattern 或 Qt::ConicalGradientPattern 时使用的渐变填充。渐变画笔是通过在创建 QBrush 时提供 QGradient 作为构造函数参数来创建的。Qt 提供了三种不同的渐变:QLinearGradientQConicalGradientQRadialGradient - 所有这些都继承自 QGradient

gradient = QRadialGradient(50, 50, 50, 50, 50)
gradient.setColorAt(0, QColor.fromRgbF(0, 1, 0, 1))
gradient.setColorAt(1, QColor.fromRgbF(0, 0, 0, 0))
brush = QBrush(gradient)

texture() 定义了当当前样式为 Qt::TexturePattern 时使用的像素图。您可以通过在创建画笔时提供像素图或使用 setTexture() 来创建带有纹理的画笔。

请注意,应用setTexture()会使style() == Qt::TexturePattern,无论之前的样式设置如何。此外,如果样式是渐变,调用setColor()将不会产生影响。如果样式是Qt::TexturePattern样式,除非当前纹理是QBitmap,情况也是如此。

isOpaque() 函数返回 true 如果画笔完全不透明,否则返回 false。画笔在以下情况下被视为不透明:

brush-outline1 轮廓

要指定线条和轮廓的样式和颜色,请使用QPainterpen结合Qt::PenStyle和Qt::GlobalColor:

painter = QPainter(self)
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在绘制形状时会渲染轮廓(使用当前设置的笔)。使用painter.setPen(Qt::NoPen)来禁用此行为。

有关绘画的更多信息,请参阅Paint System

另请参阅

QPainter QColor

__init__()

构造一个默认的黑色画笔,样式为Qt::NoBrush(即此画笔不会填充形状)。

__init__(bs)
Parameters:

bsBrushStyle

使用给定的style构造一个黑色画笔。

另请参阅

setStyle()

__init__(brush)
Parameters:

画笔QBrush

构造other的副本。

__init__(gradient)
Parameters:

渐变QGradient

基于给定的gradient构建一个画笔。

笔刷样式设置为相应的渐变样式(可以是Qt::LinearGradientPattern、Qt::RadialGradientPattern或Qt::ConicalGradientPattern)。

__init__(image)
Parameters:

图像QImage

使用黑色和设置为给定image的纹理构造一个画笔。样式设置为Qt::TexturePattern。

另请参阅

setTextureImage()

__init__(pixmap)
Parameters:

pixmapQPixmap

使用黑色和设置为给定pixmap的纹理构造一个画笔。样式设置为Qt::TexturePattern。

另请参阅

setTexture()

__init__(color[, bs=Qt.SolidPattern])
Parameters:

使用给定的colorstyle构造一个画笔。

另请参阅

setColor() setStyle()

__init__(color, pixmap)
Parameters:

使用给定的color和存储在pixmap中的自定义图案构造一个画笔。

样式设置为Qt::TexturePattern。颜色仅对QBitmaps有效。

另请参阅

setColor() setTexture()

__init__(color[, bs=Qt.SolidPattern])
Parameters:

使用给定的colorstyle构造一个画笔。

另请参阅

setColor() setStyle()

__init__(color, pixmap)
Parameters:

使用给定的color和存储在pixmap中的自定义图案构造一个画笔。

样式设置为Qt::TexturePattern。颜色仅对QBitmaps有效。

另请参阅

setColor() setTexture()

color()
Return type:

QColor

返回画笔颜色。

另请参阅

setColor()

gradient()
Return type:

QGradient

返回描述此画笔的渐变。

isOpaque()
Return type:

布尔

如果画笔完全不透明则返回 true,否则返回 false。如果满足以下条件,画笔被视为不透明:

  • color() 的 alpha 分量为 255。

  • 它的 texture() 没有 alpha 通道,也不是 QBitmap

  • gradient() 中的所有颜色都具有一个 alpha 分量为 255。

  • 这是一个扩展的径向渐变。

__ne__(b)
Parameters:

bQBrush

Return type:

布尔

如果画笔与给定的brush不同,则返回true;否则返回false

如果两个画笔具有不同的样式、颜色或变换,或者根据样式具有不同的位图或渐变,则它们是不同的。

另请参阅

operator==()

__eq__(b)
Parameters:

bQBrush

Return type:

布尔

如果画笔等于给定的brush,则返回true;否则返回false

如果两个画笔具有相同的样式、颜色和变换,并且根据样式具有相同的像素图或渐变,则它们是相等的。

另请参阅

operator!=()

setColor(color)
Parameters:

颜色GlobalColor

这是一个重载函数。

将画笔颜色设置为给定的color

setColor(color)
Parameters:

颜色QColor

将画笔颜色设置为给定的 color

请注意,如果样式是渐变,调用 setColor() 将不会产生任何效果。如果样式是 Qt::TexturePattern 样式,除非当前纹理是 QBitmap,否则情况也是如此。

另请参阅

color()

setStyle(style)
Parameters:

样式BrushStyle

将画笔样式设置为 style

另请参阅

style()

setTexture(pixmap)
Parameters:

pixmapQPixmap

将画笔的像素图设置为 pixmap。样式设置为 Qt::TexturePattern。

当前的画笔颜色仅对单色像素图有效,即对于depth() == 1(QBitmaps)。

另请参阅

texture()

setTextureImage(image)
Parameters:

图像QImage

将画笔图像设置为 image。样式设置为 Qt::TexturePattern。

请注意,当前的画笔颜色不会对单色图像产生任何影响,这与使用QBitmap调用setTexture()不同。如果你想更改单色图像画笔的颜色,可以使用QBitmap::fromImage()将图像转换为QBitmap并将生成的QBitmap设置为纹理,或者更改图像颜色表中的条目。

setTransform(matrix)
Parameters:

矩阵QTransform

matrix设置为当前画笔上的显式变换矩阵。画笔变换矩阵与QPainter变换矩阵合并以产生最终结果。

另请参阅

transform()

style()
Return type:

BrushStyle

返回画笔样式。

另请参阅

setStyle()

swap(other)
Parameters:

其他QBrush

将此画笔与other画笔交换。此操作非常快速且永远不会失败。

texture()
Return type:

QPixmap

返回自定义的画笔图案,如果未设置自定义画笔图案,则返回空像素图。

另请参阅

setTexture()

textureImage()
Return type:

QImage

返回自定义画笔图案,如果未设置自定义画笔图案,则返回空图像。

如果纹理被设置为QPixmap,它将被转换为QImage

另请参阅

setTextureImage()

transform()
Return type:

QTransform

返回画笔的当前变换矩阵。

另请参阅

setTransform()