- class QPen#
类
QPen
定义了如何对形状的线条和外框进行绘制。 更多…摘要#
方法#
def
__init__()
def
brush()
def
capStyle()
def
color()
def
dashOffset()
def
dashPattern()
def
isCosmetic()
def
isSolid()
def
joinStyle()
def
miterLimit()
def
__ne__()
def
__eq__()
def
setBrush()
def
setCapStyle()
def
setColor()
setCosmetic()
- 设置铅笔对象是否为装饰性。setDashOffset()
- 设置虚线笔的偏移量。setDashPattern()
- 设置虚线笔的图案。setJoinStyle()
- 设置折线笔的连接样式。setMiterLimit()
- 设置外斜线连接的界限。setStyle()
- 设置笔的样式。setWidth()
- 设置笔的宽度。setWidthF()
- 设置笔的宽度(浮点数)。style
- 返回笔的样式。swap
- 交换两个铅笔对象的笔属性。width
- 返回笔的宽度。widthF
- 返回笔的宽度的浮点值。
注意
本文档可能包含从 C++ 自动翻译到 Python 的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译中的问题,也可以通过在 https:/bugreports.qt.io/projects/PYSIDE 上创建工单来告诉我们。
详细描述#
警告
本节包含从 C++ 自动翻译到 Python 的代码片段,可能存在错误。
笔具有
style()
、width()
、brush()
、capStyle()
和joinStyle()
等属性。笔刷风格定义了线条类型。画笔用于填充由笔产生的线条。使用
QBrush
类来指定填充风格。端点样式决定了可以使用QPainter
绘制的线条端点类型,而连接样式描述了绘制两条线条之间的连接方式。笔的宽度可以用整数(《width()
》)和小数点(《widthF()
》)精度来指定。线宽为零表示这是一支装饰性笔。这意味着笔的宽度总是绘制为一像素宽,独立于在画家上设置的任何转换。可以通过相应的
setStyle()
、setWidth()
、setBrush()
、setCapStyle()
和setJoinStyle()
函数(注意,修改笔属性时必须重置画家的笔)来轻易修改各种设置。例如
painter = QPainter(self) pen = QPen(Qt.green, 3, Qt.DashDotLine, Qt.RoundCap, Qt.RoundJoin) painter.setPen(pen)
相当于
painter = QPainter(self) QPen pen # creates a default pen pen.setStyle(Qt.DashDotLine) pen.setWidth(3) pen.setBrush(Qt.green) pen.setCapStyle(Qt.RoundCap) pen.setJoinStyle(Qt.RoundJoin) painter.setPen(pen)
默认笔是一支带有1像素宽度的实心黑色画刷,方形端点样式(Qt::SquareCap)和斜边连接样式(Qt::BevelJoin)。
此外,
QPen
提供了color()
和setColor()
便利函数来分别提取和设置笔刷的颜色。笔也可以进行比较和流式传输。有关绘制的一般信息,请参阅绘制系统文档。
笔刷样式#
Qt提供了由Qt::PenStyle枚举表示的几个内置样式
Qt::SolidLine
Qt::DashLine
Qt::DotLine
Qt::DashDotLine
Qt::DashDotDotLine
Qt::CustomDashLine
只需使用
setStyle()
函数将笔样式转换为内置样式之一,除了即将简短的Qt::CustomDashLine样式。将样式设置为Qt::NoPen将指示画家不绘制线条或轮廓。默认笔样式是Qt::SolidLine。自Qt 4.1起,还可以使用
setDashPattern()
函数指定自定义虚线模式,该函数隐式地将画笔样式转换为Qt::CustomDashLine。该模式参数QList必须指定为偶数个qreal条目,其中条目1、3、5…是虚线,2、4、6…是间距。例如,上面所示的自定义模式是使用以下代码创建的:pen = QPen() dashes = QList() space = 4 dashes << 1 << space << 3 << space << 9 << space << 27 << space << 9 << space pen.setDashPattern(dashes)
注意,虚线模式是以画笔宽度为单位的,例如宽度为10时,长度为5的虚线长度是50像素。
当前设置的虚线模式可以使用
dashPattern()
函数检索。要确定画笔是否有实心填充,请使用isSolid()
函数。端点样式#
端点样式定义了使用
QPainter
类绘制线条端点的方式。端点样式仅适用于宽线,即当宽度为1或更大时。Qt::PenCapStyle枚举提供了以下样式:Qt::SquareCap
Qt::FlatCap
Qt::RoundCap
Qt::SquareCap样式是覆盖端点并超出端点一半线宽的方形线端。Qt::FlatCap样式是不覆盖线条端点的方形线端。Qt::RoundCap样式是覆盖端点的圆形线端。
默认是Qt::SquareCap。
当画笔宽度为0或1时,是否绘制端点取决于端点样式。使用Qt::SquareCap或Qt::RoundCap时绘制,使用Qt::FlatCap时不绘制。
连接样式#
连接样式定义了如何使用
QPainter
类绘制两条连接线条的连接。连接样式仅适用于宽线,即当宽度为1或更大时。Qt::PenJoinStyle枚举提供了以下样式:Qt::BevelJoin
Qt::MiterJoin
Qt::RoundJoin
Qt::BevelJoin样式填充两条线之间的三角形凹口。Qt::MiterJoin样式将线条延长以在角度处相遇。Qt::RoundJoin样式在两条线之间填充圆形弧。
默认是Qt::BevelJoin。
当应用Qt::MiterJoin样式时,可以使用
setMiterLimit()
函数指定接点伸出的距离。miterLimit()
用于减少线条连接处线条接近平行时的失真。miterLimit()
必须以画笔宽度的单位指定,例如宽度为10时,接限为5是50像素长。默认接限为2,即像素中画笔宽度的两倍。构建一个1像素宽度的黑色画笔,并设置给定的
样式
。另请参见
- __init__(brush, width[, s=Qt.SolidLine[, c=Qt.SquareCap[, j=Qt.BevelJoin]]])
- 参数:
brush –
QBrush
width – float
s –
PenStyle
c –
PenCapStyle
j –
PenJoinStyle
构建一个具有指定的
画刷
、宽度
、画笔样式
、端点样式
和连接样式
的画笔。- __init__(color)
- 参数:
color –
QColor
构建一个1像素宽度的填充固定颜色画笔。
另请参见
- __init__(pen)
- 参数:
pen –
QPen
创建一个与给定
pen
相同的笔。- __init__()
创建一个默认的黑色实线笔,宽度为 1。
返回使用此笔创建的描边所用的填充画刷。
另请参见
- capStyle()#
- 返回类型:
返回笔的帽样式。
另请参见
setCapStyle()
Cap Style
返回此笔刷的颜色。
另请参见
- dashOffset()#
- 返回类型:
float
返回笔的虚线偏移量。
另请参见
- dashPattern()#
- 返回类型:
.list of qreal
返回此笔的虚线模式。
- isCosmetic()#
- 返回类型:
bool
如果笔是装饰性的,则返回
true
;否则返回false
。装饰性笔用于绘制在与
QPainter
一起使用时不受任何变换影响的线条。使用装饰性笔绘制形状可以确保其轮廓在不同比例因子下具有相同的厚度。默认情况下,零宽度笔是装饰性的。
另请参见
- isSolid()#
- 返回类型:
bool
返回
true
表示笔具有实心填充,否则返回 false。另请参见
- joinStyle()#
- 返回类型:
返回笔的连接样式。
另请参见
setJoinStyle()
Join Style
- miterLimit()#
- 返回类型:
float
返回笔的斜接限制。斜接限制仅在连接样式设置为 Qt::MiterJoin 时相关。
另请参见
setMiterLimit()
Join Style
返回
true
如果该笔与给定的pen
不同;否则返回 false。两个笔不同,如果它们的样式、宽度或颜色不同。另请参见
operator==()
返回
true
如果笔与给定的pen
相等;否则返回 false。两个笔相等,如果它们具有相同的样式、宽度和颜色。另请参见
operator!=()
将使用该笔生成线划的填充所用的画刷设置为给定的
brush
。另请参见
- setCapStyle(pcs)#
- 参数:
pcs –
PenCapStyle
将笔的帽样式设置为给定的
style
。默认值为 Qt::SquareCap。另请参见
capStyle()
榫头样式
将此笔刷的颜色设置为给定的
color
。另请参见
- setCosmetic(cosmetic)#
- 参数:
cosmetic – 布尔型
根据
cosmetic
的值,将此笔设置为装饰性或非装饰性。另请参见
- setDashOffset(doffset)#
- 参数:
doffset – 浮点数
将此笔的虚线偏移(虚线模式中的起始点)设置为指定的
offset
。偏移以指定虚线模式的单位来衡量。例如,一个由每个划痕长四个单位,随后是两个单位的间隙组成的模式,在绘制为线条时将从头开始划痕。
但是,如果虚线偏移设置为4.0,则绘制的任何线条都将从间隙开始。偏移量大于等于4.0将导致划痕的一部分先被绘出,而偏移量在4.0到6.0之间将使线条从间隙的一部分开始。
- setDashPattern(pattern)#
- 参数:
pattern – .的实值列表
警告
本节包含从 C++ 自动翻译到 Python 的代码片段,可能存在错误。
将此笔的虚线模式设置为给定的
pattern
。这隐式地将笔样式转换为 Qt::CustomDashLine。模式必须指定为偶数个正条目,其中1, 3, 5……是划痕,2, 4, 6……是间隙。例如
pen = QPen() dashes = QList() space = 4 dashes << 1 << space << 3 << space << 9 << space << 27 << space << 9 << space pen.setDashPattern(dashes)
虚线模式是用笔的宽度作为单位的;例如,宽度为10的笔中长度为5的划痕是50像素长。注意,宽度为零的笔等同于宽度为1像素的装饰性笔。
每个划痕也受到榫头样式的约束,因此具有方形榫头的划痕将延伸0.5像素到每个方向,从而总宽度为2。
请注意,默认的榫头样式是 Qt::SquareCap,这意味着方形线端覆盖端点,并超出它一半的线宽。
- setJoinStyle(pcs)#
- 参数:
pcs – PenJoinStyle
将画笔的连接样式设置为指定的
style
。默认值为Qt::BevelJoin。另请参见
joinStyle()
Join
Style
- setMiterLimit(limit)#
- 参数:
limit – float
将此画笔的削角限制设置为指定的
limit
。削角限制描述了削角连接可以从连接点延伸多远。这用于减少当线条几乎平行时的线段连接处出现的伪像。
此值仅在画笔样式设置为Qt::MiterJoin时有效。此值以画笔宽度的单位指定,例如,宽度为10的画笔中的削角限制为5是50个像素长。默认削角限制为2,即像素宽度的两倍。
另请参见
miterLimit() setJoinStyle()
Join
Style
将画笔样式设置为指定的
style
。请参阅Qt::PenStyle文档以获取可用样式的列表。从Qt 4.1开始,还可以使用setDashPattern()函数指定自定义虚线模式,该函数隐式地将画笔样式转换为Qt::CustomDashLine。
- setWidth(width)#
- 参数:
width – int
将笔宽度设置为给定的
width
像素值,具有整数精度。线条宽度为零表示装饰用笔。这意味着笔宽度总是绘制为一个像素宽,不依赖于画家上设置的
transformation
。不支持设置带负值的笔宽度。
另请参见
- setWidthF(width)#
- 参数:
width – float
使用浮点精度将笔宽度设置为给定的
width
像素值。线条宽度为零表示装饰用笔。这意味着笔宽度总是绘制为一个像素宽,不依赖于画家上设置的
transformation
。不支持设置带负值的笔宽度。
另请参见
返回笔样式。
另请参见
setStyle()
Pen Style
将笔
other
与此笔交换。此操作非常快,而且绝对不会失败。- width()#
- 返回类型:
int
以整数精度返回笔宽度。
另请参见
- widthF()#
- 返回类型:
float
以浮点精度返回笔宽度。
另请参见