- class QPainterPath#
类
QPainterPath
为绘制操作提供了容器,使得可以构建和重复使用图形形状。更多...概要#
方法#
def
__init__()
def
addEllipse()
def
addPath()
def
addPolygon()
def
addRect()
def
addRegion()
def
addRoundedRect()
def
addText()
def
angleAtPercent()
def
arcMoveTo()
def
arcTo()
def
boundingRect()
def
capacity()
def
clear()
def
closeSubpath()
def
connectPath()
def
contains()
def
cubicTo()
def
elementAt()
def
elementCount()
def
fillRule()
def
intersected()
def
intersects()
def
isEmpty()
def
length()
def
lineTo()
def
moveTo()
def
__ne__()
def
__and__()
def
__iand__()
def
__mul__()
def
__add__()
def
__iadd__()
def
__sub__()
定义
__isub__()
定义
__eq__()
定义
__or__()
定义
__ior__()
定义
quadTo()
定义
reserve()
定义
subtracted()
定义
swap()
定义
toReversed()
定义
translate()
定义
translated()
定义
united()
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对片段翻译的贡献。如果您发现翻译有问题,也可以通过在https://bugreports.qt.io/projects/PYSIDE上创建工单来告诉我们
详细描述#
警告
本节包含从C++自动翻译成Python的代码片段,可能包含错误。
绘图路径是由多个图形构建块组成的对象,例如矩形、椭圆、线条和曲线。构建块可以连接成封闭的子路径,例如矩形或椭圆。封闭路径的起点和终点相重合。或者它们也可以独立存在为未封闭的子路径,例如线条和曲线。
可以使用
QPainterPath
对象进行填充、轮廓和裁剪。要为给定的绘图路径生成可填充的轮廓,请使用QPainterPathStroker
类。与常规绘图操作相比,绘图路径的主要优势是复杂形状只需要创建一次;然后它们可以通过调用drawPath()
函数多次绘制。QPainterPath
提供了一组函数,可用于获取有关路径及其元素的信息。此外,还可以使用toReversed()
函数颠倒元素顺序。还有多个将此绘图路径对象转换为多边形表示的函数。组合QPainterPath
QPainterPath
对象可以构造为空路径、给定起点或其他QPainterPath
对象的副本。一旦创建,可以使用lineTo()
、arcTo()
、cubicTo()
和quadTo()
函数将线条和曲线添加到路径中。线条和曲线从当前currentPosition()
位置延伸到作为参数传递的位置。对象
currentPosition()
的当前位置始终是最近添加的子路径的结束位置(或初始起始点)。使用moveTo()
函数可以移动当前位置而不添加组件。函数moveTo()
默认开始一个新的子路径,并关闭之前的子路径。另一种开始新的子路径的方法是调用函数closeSubpath()
,它会通过添加线条从当前currentPosition()
返回路径的起始位置,来关闭当前路径。请注意,新路径将具有 (0, 0) 作为其初始currentPosition()
。QPainterPath
类还提供了一些方便的函数,可以将封闭的子路径添加到绘图路径:addEllipse()
、addPath()
、addRect()
、addRegion()
和addText()
。函数addPolygon()
添加一个 未闭合 子路径。实际上,这些函数都是操作集合moveTo()
、lineTo()
和cubicTo()
。此外,可以使用函数
connectPath()
将路径添加到当前路径。但请注意,此函数将使用线条连接当前路径的最后一个元素和给定路径的第一个元素。以下是一个代码片段,演示了如何使用
QPainterPath
对象。path = QPainterPath() path.addRect(20, 20, 60, 60) path.moveTo(0, 0) path.cubicTo(99, 0, 50, 50, 99, 99) path.cubicTo(0, 99, 50, 50, 0, 0) painter = QPainter(self) painter.fillRect(0, 0, 100, 100, Qt.white) painter.setPen(QPen(QColor(79, 106, 25), 1, Qt.SolidLine, Qt.FlatCap, Qt.MiterJoin)) painter.setBrush(QColor(122, 163, 39)) painter.drawPath(path)
当构造时,绘画路径初始为空。我们首先添加一个矩形,它是一个闭合的子路径。然后我们添加两条贝塞尔曲线,尽管它们各自不是闭合的,但一起形成一个闭合的子路径。最后我们绘制整个路径。路径使用默认的填充规则 Qt::OddEvenFill。Qt提供了两种填充路径的方法
Qt::OddEvenFill
Qt::WindingFill
请参阅 Qt::FillRule 文档了解规则的定义。可以使用
fillRule()
函数检索当前设置的填充规则,并使用setFillRule()
函数修改规则。QPainterPath 信息#
QPainterPath
类提供一系列函数,用于获取路径及其元素的信息。currentPosition()
函数返回最后一个添加的子路径的终点(或初始起点)。可以使用elementAt()
函数检索各种子路径元素,通过elementCount()
函数可以检索元素数量,isEmpty()
函数决定了此QPainterPath
对象是否包含任何元素。controlPointRect()
函数返回包含路径中所有点和控制点的矩形。此函数的计算速度比精确的boundingRect()
函数快得多,后者返回带有浮点精度的此绘画路径的边界矩形。最后,
QPainterPath
提供了contains()
函数,可以用来确定某个点或矩形是否在路径内,以及intersects()
函数,用于确定给定矩形内的任意点是否也在路径内。QPainterPath 转换#
出于兼容性考虑,可能需要简化画家路径的表示:
QPainterPath
提供了将画家路径转换为多边形的函数:toFillPolygon()
、toFillPolygons()
和toSubpathPolygons()
。其中,toFillPolygon()
返回一个由单个多边形构成的对象,而后两者则返回多边形列表。toFillPolygons()
和toSubpathPolygons()
函数被提供,因为绘制多个较小的多边形通常比绘制一个大的多边形要快,即使绘制的总点数相同。这两个函数之间的区别在于它们返回的多边形数量:toSubpathPolygons()
为每个子路径创建一个多边形,不论子路径是否相交(即重叠的边界矩形),而toFillPolygons()
函数只为重叠的子路径创建一个多边形。toFillPolygon()
和toFillPolygons()
函数首先将所有子路径转换为多边形,然后使用回绕技术确保可以使用正确的填充规则进行重叠子路径的填充。请注意,回绕会在多边形中插入额外的线条,因此填充多边形的轮廓与路径的轮廓不匹配。示例#
Qt 提供了“画家路径示例”和“矢量变形示例”,它们位于 Qt 的示例目录中。
“画家路径示例”展示了如何使用画家路径构建用于渲染的复杂形状,并允许用户试验填充和描边。矢量变形示例展示了如何使用
QPainterPath
绘制文本。画家路径示例
矢量变形示例
另请参阅
- class ElementType#
此枚举描述了连接子路径中顶点所用元素的类型。
注意,使用
addEllipse()
、addPath()
、addPolygon()
、addRect()
、addRegion()
和addText()
便捷函数添加作为闭合子路径的元素,实际上是使用moveTo()
、lineTo()
和cubicTo()
函数将它们作为单独的元素集添加到路径中。
- __init__(other)#
- 参数:
other –
QPainterPath
创建一个副本的给定路径的
QPainterPath
对象。另请参阅
operator=()
- __init__()
构建一个空的
QPainterPath
对象。- __init__(startPoint)
- 参数:
startPoint –
QPointF
创建一个以给定的
startPoint
为当前位置的QPainterPath
对象。这是一个重载函数。
在
center
位置创建一个半径为rx
和ry
的椭圆,并将其作为闭合子路径添加到画家路径中。- addEllipse(x, y, w, h)
- 参数:
x – float
y – float
w – float
h – float
这是一个重载函数。
在由其左上角在 (
x
,y
),宽度width
和高度height
定义的边界矩形内创建一个椭圆,并将其作为闭合子路径添加到画家路径中。- addEllipse(rect)
- 参数:
rect –
QRectF
警告
本节包含从C++自动翻译成Python的代码片段,可能包含错误。
在指定的
boundingRectangle
内创建一个椭圆,并将其作为闭合子路径添加到画家路径中。椭圆由顺时针方向的曲线组成,从0度(3点钟位置)开始和结束。
myGradient = QLinearGradient() myPen = QPen() boundingRectangle = QRectF() myPath = QPainterPath() myPath.addEllipse(boundingRectangle) painter = QPainter(self) painter.setBrush(myGradient) painter.setPen(myPen) painter.drawPath(myPath)
另请参阅
arcTo()
drawEllipse()
合成 a QPainterPath
- addPath(path)#
- 参数:
path –
QPainterPath
将指定的路径作为子路径添加到当前路径中。
另请参阅
connectPath()
组合 QPainterPath
警告
本节包含从C++自动翻译成Python的代码片段,可能包含错误。
将指定的多边形作为子路径添加到路径中。
注意,在多边形添加之后,当前位置是多边形的最后一个点。要绘制一条线回到第一个点,请使用
closeSubpath()
函数。myGradient = QLinearGradient() myPen = QPen() myPolygon = QPolygonF() myPath = QPainterPath() myPath.addPolygon(myPolygon) painter = QPainter(self) painter.setBrush(myGradient) painter.setPen(myPen) painter.drawPath(myPath)
另请参阅
lineTo()
组合 QPainterPath
警告
本节包含从C++自动翻译成Python的代码片段,可能包含错误。
将指定的矩形作为子路径添加到当前路径中。
矩形以顺时针的方式添加为线集。在添加矩形之后,绘制路径的当前位置在矩形的左上角。
myGradient = QLinearGradient() myPen = QPen() myRectangle = QRectF() myPath = QPainterPath() myPath.addRect(myRectangle) painter = QPainter(self) painter.setBrush(myGradient) painter.setPen(myPen) painter.drawPath(myPath)
另请参阅
addRegion()
lineTo()
组合 QPainterPath
- addRect(x, y, w, h)
- 参数:
x – float
y – float
w – float
h – float
这是一个重载函数。
在位置(
x
,y
)处添加一个矩形,宽度为width
,高度为height
,作为一个封闭的子路径。将给定的
区域
添加到路径中,通过将区域中的每个矩形作为单独的封闭子路径添加。另请参阅
addRect()
组合 QPainterPath
- addRoundedRect(rect, xRadius, yRadius[, mode=Qt.AbsoluteSize])#
将具有圆角的给定矩形
rect
添加到路径中。参数
xRadius
和yRadius
指定了构成圆角矩形角落的椭圆的半径。当mode
为 Qt::RelativeSize 时,xRadius
和yRadius
分别指定为矩形宽度和高的一半的百分比,范围应在 0.0 到 100.0 之间。另请参阅
- addRoundedRect(x, y, w, h, xRadius, yRadius[, mode=Qt.AbsoluteSize])
- 参数:
x – float
y – float
w – float
h – float
xRadius – float
yRadius – float
mode –
SizeMode
这是一个重载函数。
将给定具有圆角的矩形
x
,y
,w
,h
添加到路径中。警告
本节包含从C++自动翻译成Python的代码片段,可能包含错误。
将给定的
文本
添加到路径中,作为由提供的字体
生成的封闭子路径集合。子路径的位置使得文本基线的左侧端点位于指定的point
。某些字体可能生成重叠的子路径,需要使用
Qt::WindingFill
填充规则才能正确渲染。myGradient = QLinearGradient() myPen = QPen() myFont = QFont() baseline = QPointF(x, y) myPath = QPainterPath() myPath.addText(baseline, myFont, tr("Qt")) painter = QPainter(self) painter.setBrush(myGradient) painter.setPen(myPen) painter.drawPath(myPath)
另请参阅
drawText()
组合 QPainterPath
setFillRule()
- addText(x, y, f, text)
- 参数:
x – float
y – float
f –
QFont
text – str
这是一个重载函数。
将指定的
text
添加到此路径中,作为由提供的font
生成的闭合子路径集。子路径的位置使得文本基线的左侧端点位于指定的点 (x
,y
)。- angleAtPercent(t)#
- 参数:
t – float
- 返回类型:
float
在路径的
t
百分比处返回路径切线的角度。参数t
必须在 0 到 1 之间。角度的正值表示逆时针方向,而负值表示顺时针方向。零度在 3 点位置。
注意,与其他百分比方法类似,当路径中有曲线时,百分比的测量不是与长度成线性关系的。当路径中有曲线时,百分比参数映射到 Bezier 方程的 t 参数。
创建一个位于给定
rectangle
中弧线上的移动。角度以度为单位指定。可以使用负角度指定顺时针弧。
- arcMoveTo(x, y, w, h, angle)
- 参数:
x – float
y – float
w – float
h – float
angle – float
这是一个重载函数。
创建一个位于给定的 QRectF(
x
,y
,width
,height
) 在angle
处的弧线上的移动。- arcTo(x, y, w, h, startAngle, arcLength)#
- 参数:
x – float
y – float
w – float
h – float
startAngle – 浮点数
arcLength – 浮点数
这是一个重载函数。
创建一个占据矩形QRectF(x, y, width, height)的圆弧,从指定的startAngle开始,并以逆时针方向扩展sweepLength度。
- arcTo(rect, startAngle, arcLength)
- 参数:
rect –
QRectF
startAngle – 浮点数
arcLength – 浮点数
警告
本节包含从C++自动翻译成Python的代码片段,可能包含错误。
创建一个占据给定矩形rect的圆弧,从指定的startAngle开始,并以逆时针方向扩展sweepLength度。
角度以度为单位指定。可以使用负角度指定顺时针弧。
请注意,如果弧的起始点和当前位置尚未连接,此函数会将两个点连接起来。添加弧后,当前位置为弧的最后一个点。要绘制一条线回到第一个点,请使用
closeSubpath()
函数。myPath = QPainterPath() myPath.moveTo(center) myPath.arcTo(boundingRect, startAngle, sweepLength) painter = QPainter(self) painter.setBrush(myGradient) painter.setPen(myPen) painter.drawPath(myPath)
另请参阅
arcMoveTo()
addEllipse()
drawArc()
drawPie()
Composing a QPainterPath
返回此绘图路径的边界矩形,作为具有浮点精度的矩形。
另请参阅
- capacity()#
- 返回类型:
int
返回由
QPainterPath
分配的元素数量。- clear()#
清除存储的路径元素。
这允许路径重用先前的内存分配。
另请参阅
- closeSubpath()#
通过绘制一条线到子路径的起始点,关闭当前的子路径,自动开始新的路径。新路径的当前点是 (0, 0)。
如果子路径不包含任何元素,此函数不起作用。
另请参阅
moveTo()
组合 QPainterPath
- connectPath(path)#
- 参数:
path –
QPainterPath
通过从当前路径的最后一个元素到给定路径的第一个元素添加一条线,将给定的
path
连接到当前路径。另请参阅
addPath()
组合QPainterPath
- contains(p)#
- 参数:
p –
QPainterPath
- 返回类型:
bool
如果给定的路径
p
位于当前路径内,返回true
。如果当前路径的任何边与p
相交,返回false
。路径上的集合操作将路径视为区域。非封闭路径将被隐式封闭处理。
另请参阅
- contains(pt)
- 参数:
pt –
QPointF
- 返回类型:
bool
如果给定的点位于路径内,则返回
true
,否则返回false
。另请参阅
- contains(rect)
- 参数:
rect –
QRectF
- 返回类型:
bool
如果给定的矩形位于路径内,则返回
true
,否则返回false
。返回包含此路径中所有点和控制点的矩形。
此函数的运算速度比精确的
boundingRect()
明显快,并且返回的矩形总是包含由boundingRect()
返回的矩形。另请参阅
警告
本节包含从C++自动翻译成Python的代码片段,可能包含错误。
使用指定的控制点
c1
和c2
,在此当前位置和指定的endPoint
之间增加一个三次贝塞尔曲线。曲线添加后,当前位置更新为曲线的终点。
myGradient = QLinearGradient() myPen = QPen() myPath = QPainterPath() myPath.cubicTo(c1, c2, endPoint) painter = QPainter(self) painter.setBrush(myGradient) painter.setPen(myPen) painter.drawPath(myPath)
另请参阅
quadTo()
组合 一个 QPainterPath
- cubicTo(ctrlPt1x, ctrlPt1y, ctrlPt2x, ctrlPt2y, endPtx, endPty)
- 参数:
ctrlPt1x – float
ctrlPt1y – float
ctrlPt2x – float
ctrlPt2y – float
endPtx – float
endPty – float
这是一个重载函数。
使用指定的控制点 (
c1X
,c1Y
) 和 (c2X
,c2Y
),在此当前位置和终点 (endPointX
,endPointY
) 之间添加一个三次贝塞尔曲线。返回路径的当前位置。
- elementAt(i)#
- 参数:
i – int
- 返回类型:
元素
返回画家画路径中指定
index
的元素。- elementCount()#
- 返回类型:
int
返回画家画路径中路径元素的数目。
返回画家画路径当前设置的填充规则。
另请参阅
- intersected(r)#
- 参数:
r –
QPainterPath
- 返回类型:
返回一个路径,它是该路径填充区域与
p
's 填充区域的交集。由于贝塞尔曲线交集的数值不稳定,贝塞尔曲线可能会被简化为线段。如果给定
rectangle
的任意点与路径相交,则返回值为true
;否则返回false
。如果矩形的任意一行与路径的某一部分相交,或者矩形的任何一部分与路径包围的任何区域重叠,则存在交集。此函数根据当前
fillRule
确定路径内部应考虑的内容。另请参阅
- intersects(p)
- 参数:
p –
QPainterPath
- 返回类型:
bool
如果当前路径与给定的路径
p
在任意点相交,则返回true
。如果当前路径包含或被p
的任意部分包含,也返回true
。路径上的集合操作将路径视为区域。非封闭路径将被隐式封闭处理。
另请参阅
- isEmpty()#
- 返回类型:
bool
如果此路径中没有任何元素,或者唯一元素是
MoveToElement
,则返回true
;否则返回false
。另请参阅
- length()#
- 返回类型:
float
返回当前路径的长度。
从当前位置添加一条直线到给定
endPoint
。绘制直线后,当前位置更新为直线的终点。另请参阅
addPolygon()
addRect()
组合 QPainterPath- lineTo(x, y)
- 参数:
x – float
y – float
这是一个重载函数。
从当前位置绘制到点 (
x
,y
) 的直线。将当前点移动到给定的
point
,隐式地开始一个新的子路径并关闭前一个路径。另请参阅
closeSubpath()
组合 QPainterPath- moveTo(x, y)
- 参数:
x – float
y – float
这是一个重载函数。
将当前位置移动到 (
x
,y
) 并开始一个新的子路径,隐式地关闭前一个路径。- __ne__(other)#
- 参数:
other –
QPainterPath
- 返回类型:
bool
如果此画家路径与给定的路径不同,则返回
true
。请注意,比较路径可能会涉及对每个元素的比较,对于复杂的路径可能会很慢。
另请参阅
operator==()
- __and__(other)#
- 参数:
other –
QPainterPath
- 返回类型:
返回此路径与
other
路径的交集。另请参阅
intersected()
operator&=()
united()
operator|()
- __iand__(other)#
- 参数:
other –
QPainterPath
- 返回类型:
与此路径交叉,并返回对此路径的引用。
另请参阅
intersected()
operator&()
operator|()
- __mul__(m)#
- 参数:
m –
QTransform
- 返回类型:
- __add__(other)#
- 参数:
other –
QPainterPath
- 返回类型:
返回此路径与
other
路径的并集。此函数与operator|()等价。另请参阅
united()
operator+=()
operator-()
- __iadd__(other)#
- 参数:
other –
QPainterPath
- 返回类型:
与此路径合并,并返回对此路径的引用。这等价于operator|=()。
另请参阅
united()
operator+()
operator-()
- __sub__(other)#
- 参数:
other –
QPainterPath
- 返回类型:
从此路径的副本中减去
other
路径,并返回副本。另请参阅
subtracted()
operator-=()
operator+()
- __isub__(other)#
- 参数:
other –
QPainterPath
- 返回类型:
从当前路径中减去
other
,并返回当前路径的引用。另请参阅
subtracted()
operator-()
operator+=()
- __eq__(other)#
- 参数:
other –
QPainterPath
- 返回类型:
bool
如果此绘图路径等于给定的
path
,则返回true
。请注意,比较路径可能会涉及对每个元素的比较,对于复杂的路径可能会很慢。
另请参阅
operator!=()
- __or__(other)#
- 参数:
other –
QPainterPath
- 返回类型:
返回此路径和
other
路径的并集。另请参阅
united()
operator|=()
intersected()
operator&()
- __ior__(other)#
- 参数:
other –
QPainterPath
- 返回类型:
将此路径与
other
合并并返回对此路径的引用。另请参阅
united()
operator|()
operator&=()
- percentAtLength(t)#
- 参数:
t – float
- 返回类型:
float
返回指定长度
len
的路径的百分比。请注意,与其他百分比方法类似,如果有曲线存在于路径中,百分比度量与长度不是线性的。当存在曲线时,百分比参数被映射到贝塞尔方程的 t 参数。
返回当前路径百分比
t
处的点。参数t
必须在 0 和 1 之间。请注意,与其他百分比方法类似,如果有曲线存在于路径中,百分比度量与长度不是线性的。当存在曲线时,百分比参数被映射到贝塞尔方程的 t 参数。
- quadTo(ctrlPtx, ctrlPty, endPtx, endPty)#
- 参数:
ctrlPtx – float
ctrlPty – float
endPtx – float
endPty – float
这是一个重载函数。
在当前点和终点(《
endPointX
》,《endPointY
》)之间添加一个二次贝塞尔曲线,控制点由(《cx
》,《cy
》)指定。在当前位置和给定的《
endPoint
》之间添加一个二次贝塞尔曲线,由《c
》指定的控制点。添加曲线后,当前点更新为曲线的终点。
另请参阅
cubicTo()
《组合QPainterPath》- reserve(size)#
- 参数:
size – int
在《
QPainterPath
》的内部内存中保留指定数量的元素。尝试为至少《
size
》个元素分配内存。另请参阅
clear()
《clear()》capacity()
《capacity()》reserve()
- setElementPositionAt(i, x, y)#
- 参数:
i – int
x – float
y – float
将索引《
index
》处的元素x和y坐标设置为《x
`和《y
`。将画家路径的填充规则设置为给定的《
fillRule
》。Qt提供了两种路径填充的方法Qt::OddEvenFill(默认)
Qt::WindingFill
另请参阅
- simplified()#
- 返回类型:
返回此路径的简化版本。这意味着合并所有相交的子路径,并返回不包含相交边的路径。连续平行线也将合并。简化路径将始终使用默认填充规则,Qt::OddEvenFill。由于进行贝塞尔曲线交叉的数值不稳定性,贝塞尔曲线可能会展平为线段。
- slopeAtPercent(t)#
- 参数:
t – float
- 返回类型:
float
在百分比
t
处返回路径的斜率。参数t
必须在0和1之间。请注意,与其他百分比方法类似,如果有曲线存在于路径中,百分比度量与长度不是线性的。当存在曲线时,百分比参数被映射到贝塞尔方程的 t 参数。
- subtracted(r)#
- 参数:
r –
QPainterPath
- 返回类型:
返回一个路径,它是从该路径的填充区域减去此路径的填充区域的结果。
路径上的集合运算将路径视为区域。非闭合路径将被视为隐式闭合。由于进行贝塞尔曲线交叉的数值不稳定性,贝塞尔曲线可能会展平为线段。
- swap(other)#
- 参数:
other –
QPainterPath
交换画家路径
other
与此画家路径。这个操作非常快,永远不会失败。- toFillPolygon([matrix=QTransform()])#
- 参数:
matrix –
QTransform
- 返回类型:
使用
QTransform
matrix
将路径转换为多边形,并返回该多边形。首先将所有子路径转换为多边形,然后使用反转技术以确保可以使用正确的填充规则填充重叠的子路径来创建多边形。
请注意,反转会在多边形中插入额外的线条,因此填充多边形的轮廓与路径的轮廓不匹配。
另请参阅
toSubpathPolygons()
toFillPolygons()
QPainterPath 转换
- toFillPolygons([matrix=QTransform()])#
- 参数:
matrix –
QTransform
- 返回类型:
. QPolygonF列表
使用
QTransform
matrix
将路径转换为多边形列表,并返回该列表。该函数与
toFillPolygon()
函数的区别在于它会创建多个多边形。之所以提供该函数,是因为通常绘制多个小多边形的速度比绘制一个大多边形快,尽管绘制的点总数相同。toFillPolygons() 函数与
toSubpathPolygons()
函数的不同之处在于它只为具有重叠边界的子路径创建一个多边形。与
toFillPolygon()
函数类似,此函数使用回溯技术来确保重叠的子路径可以使用正确的填充规则进行填充。请注意,回溯会在多边形中插入额外的线,所以填充多边形的轮廓不会与路径的轮廓匹配。另请参阅
toSubpathPolygons()
toFillPolygon()
QPainterPath Conversion
- toReversed()#
- 返回类型:
创建并返回路径的反向副本。
元素顺序是被反转的:如果一个
QPainterPath
是由调用指定顺序的moveTo()
,lineTo()
和cubicTo()
函数组成的,那么反转副本是由调用cubicTo()
,lineTo()
和moveTo()
组成的。- toSubpathPolygons([matrix=QTransform()])#
- 参数:
matrix –
QTransform
- 返回类型:
. QPolygonF列表
使用
QTransform
matrix
将路径转换为多边形列表,并返回该列表。此函数为每个子路径创建一个多边形,无论这些子路径是否相交(即重叠的边界矩形)。为了确保这些重叠的子路径被正确填充,请使用
toFillPolygons()
函数替代。另请参阅
toFillPolygons()
toFillPolygon()
QPainterPath Conversion
这是一个重载函数。
将路径中所有元素平移指定的
offset
。另请参阅
- translate(dx, dy)
- 参数:
dx – float
dy – float
将路径中所有元素平移(
dx
,dy
)。另请参阅
这是一个重载函数。
返回一个新路径,该路径通过给定的
offset
进行了平移。另请参阅
- translated(dx, dy)
- 参数:
dx – float
dy – float
- 返回类型:
返回一个新路径,该路径通过(
dx
,dy
)进行了平移。另请参阅
- united(r)#
- 参数:
r –
QPainterPath
- 返回类型:
返回一个新路径,它是此路径的填充区域和白方路径填充区域的并集。
路径上的集合运算将路径视为区域。非闭合路径将被视为隐式闭合。由于进行贝塞尔曲线交叉的数值不稳定性,贝塞尔曲线可能会展平为线段。