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()函数分别在写入和更改时检索和更改当前设置的color。

gradient() 定义了当当前样式为Qt::LinearGradientPattern、Qt::RadialGradientPattern或Qt::ConicalGradientPattern时使用的渐变填充。通过在创建QBrush时将[a class="reference internal" href="QGradient.html#PySide6.QtGui.QGradient" title="PySide6.QtGui.QGradient">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。一个画刷被认为是不透明的,如果

  • color() 的 alpha 分量是 255。

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

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

brush-outline1 线条轮廓

要指定线条和轮廓的样式和颜色,请使用 QPainter 的 pen 与 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__(bs)#
参数:

bsBrushStyle

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

另请参阅

setStyle()

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

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

另请参阅

setColor() setStyle()

__init__(color, pixmap)
参数:

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

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

另请参阅

setColor() setTexture()

__init__(brush)
参数:

brushQBrush

构造其它 brush 的副本。

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

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

另请参阅

setColor() setStyle()

__init__(color, pixmap)
参数:

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

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

另请参阅

setColor() setTexture()

__init__(gradient)
参数:

gradientQGradient

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

画笔样式设置为对应的渐变样式(Qt::LinearGradientPattern、Qt::RadialGradientPattern 或 Qt::ConicalGradientPattern)。

__init__(image)
参数:

imageQImage

构造一个具有黑色颜色并设置为给定 image 的纹理的画笔。样式设置为 Qt::TexturePattern。

另请参阅

setTextureImage()

__init__(pixmap)
参数:

pixmapQPixmap

构造一个具有黑色颜色并设置为给定 pixmap 的纹理的画笔。样式设置为 Qt::TexturePattern。

另请参阅

setTexture()

__init__()

使用Qt::NoBrush(即此画笔将不会填充形状)样式构建默认黑色画笔。

color
返回类型:

QColor

返回画笔颜色。

另请参阅

setColor()

gradient
返回类型:

QGradient

返回描述此画笔的渐变。

isOpaque
返回类型:

bool

如果画笔完全不透明,返回true,否则返回false。如果一个画笔是扩展的径向渐变,则被视为不透明。

  • color() 的 alpha 分量是 255。

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

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

  • 它是扩展的径向渐变。

__ne__
参数:

bQBrush

返回类型:

bool

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

如果画笔具有不同的样式、颜色或转换,或者根据样式具有不同的位图或渐变,则被认为不同。

另请参阅

operator==()

__eq__
参数:

bQBrush

返回类型:

bool

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

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

另请参阅

operator!=()

setColor
参数:

colorGlobalColor

这是一个重载函数。

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

setColor
参数:

colorQColor

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

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

另请参阅

color()

setStyle
参数:

arg__1BrushStyle

将画笔样式设置为style

另请参阅

style()

setTexture
参数:

pixmapQPixmap

将画笔位图设置为pixmap。样式设置为Qt::TexturePattern。

当前画笔颜色只对单色位图生效,即 depth() == 1 时( QBitmaps )。

另请参阅

texture()

setTextureImage(image)#
参数:

imageQImage

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

请注意,当前画笔颜色对单色图像不起作用,与调用带有 QBitmap 的函数 setTexture() 不同。如果您想改变单色画笔的图像颜色,可以通过使用 QBitmap::fromImage() 将图像转换为 QBitmap 并将其作为纹理设置,或者更改图像的颜色表中的条目。

setTransform(arg__1)#
参数:

arg__1QTransform

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

另请参阅

transform()

style()#
返回类型:

BrushStyle

返回画笔样式。

另请参阅

setStyle()

swap(other)#
参数:

otherQBrush

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

texture()#
返回类型:

QPixmap

返回自定义画笔模式,如果没有设置自定义画笔模式,则返回空位图。

另请参阅

setTexture()

textureImage()#
返回类型:

QImage

返回自定义画笔模式,如果没有设置自定义画笔模式,则返回空图像。

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

另请参阅

setTextureImage()

transform()#
返回类型:

QTransform

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

另请参阅

setTransform()