PySide6.QtGui.QPainterPath¶
- class QPainterPath¶
QPainterPath类为绘画操作提供了一个容器,使得图形形状可以被构建和重用。More_…概要¶
方法¶
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__()def
__isub__()def
__eq__()def
__or__()def
__ior__()def
pointAtPercent()def
quadTo()def
reserve()def
setFillRule()def
simplified()def
slopeAtPercent()def
subtracted()def
swap()def
toFillPolygon()def
toFillPolygons()def
toReversed()def
translate()def
translated()def
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()的QPainterPath对象始终是最后添加的子路径的结束位置(或初始起点)。使用moveTo()函数可以在不添加组件的情况下移动currentPosition()。moveTo()函数隐式地开始一个新的子路径,并关闭前一个子路径。另一种开始新子路径的方法是调用closeSubpath()函数,该函数通过从currentPosition()添加一条线回到路径的起始位置来关闭当前路径。请注意,新路径的初始currentPosition()将是 (0, 0)。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 示例目录中的 Painter Paths 示例和 Vector Deformation 示例。
Painter Paths 示例展示了如何使用画家路径来构建复杂的形状进行渲染,并让用户尝试填充和描边。Vector Deformation 示例展示了如何使用
QPainterPath来绘制文本。画家路径示例
矢量变形示例


另请参阅
QPainterPathStrokerQPainterQRegionPainter Paths Example- class ElementType¶
此枚举描述了用于连接子路径中顶点的元素类型。
请注意,使用
addEllipse()、addPath()、addPolygon()、addRect()、addRegion()和addText()便捷函数添加为闭合子路径的元素,实际上是使用moveTo()、lineTo()和cubicTo()函数作为单独元素的集合添加到路径中的。
- __init__()¶
构造一个空的
QPainterPath对象。- __init__(other)
- Parameters:
其他 –
QPainterPath
创建一个
QPainterPath对象,它是给定path的副本。另请参阅
operator=()- __init__(startPoint)
- Parameters:
startPoint –
QPointF
创建一个
QPainterPath对象,并将给定的startPoint作为其当前位置。警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
在指定的
boundingRectangle内创建一个椭圆,并将其作为闭合子路径添加到绘制路径中。椭圆由顺时针曲线组成,从零度(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()组合 一个 QPainterPath- addEllipse(center, rx, ry)
- Parameters:
center –
QPointFrx – 浮点数
ry – 浮点数
这是一个重载函数。
创建一个以
center为中心,半径为rx和ry的椭圆,并将其作为闭合子路径添加到绘制路径中。- addEllipse(x, y, w, h)
- Parameters:
x – 浮点数
y – 浮点数
w – 浮点数
h – 浮点数
这是一个重载函数。
在其左上角位于(
x,y)、width和height定义的边界矩形内创建一个椭圆,并将其作为闭合子路径添加到绘制路径中。- addPath(path)¶
- Parameters:
路径 –
QPainterPath
将给定的
path添加为此路径的闭合子路径。另请参阅
connectPath()组合 一个 QPainterPath警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
将给定的
polygon作为(未闭合的)子路径添加到路径中。请注意,添加多边形后的当前位置是多边形的最后一个点。要画一条线回到第一个点,请使用
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的代码片段,可能包含错误。
将给定的
rectangle作为闭合子路径添加到此路径中。rectangle被添加为一组顺时针的线条。添加rectangle后,绘制路径的当前位置位于矩形的左上角。
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)
- Parameters:
x – 浮点数
y – 浮点数
w – 浮点数
h – 浮点数
这是一个重载函数。
在位置 (
x,y) 添加一个矩形,具有给定的width和height,作为闭合子路径。通过将区域中的每个矩形添加为单独的闭合子路径,将给定的
region添加到路径中。另请参阅
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])
- Parameters:
x – 浮点数
y – 浮点数
w – 浮点数
h – 浮点数
xRadius – 浮点数
yRadius – 浮点数
mode –
SizeMode
这是一个重载函数。
将给定的带有圆角的矩形
x,y,w,h添加到路径中。警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
将给定的
text添加到此路径中,作为从提供的font创建的一组闭合子路径。子路径的位置使得文本基线的左端位于指定的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()组合 一个 QPainterPathsetFillRule()- addText(x, y, f, text)
- Parameters:
x – 浮点数
y – 浮点数
f –
QFont文本 – str
这是一个重载函数。
将给定的
text作为一组封闭的子路径添加到该路径中,这些子路径由提供的font创建。子路径的位置使得文本基线的左端位于由(x,y)指定的点。- angleAtPercent(t)¶
- Parameters:
t – 浮点数
- Return type:
浮点数
返回路径切线在百分比
t处的角度。参数t必须在 0 和 1 之间。角度的正值表示逆时针方向,而负值表示顺时针方向。零度位于3点钟位置。
请注意,与其他百分比方法类似,如果路径中存在曲线,百分比测量与长度不是线性的。当存在曲线时,百分比参数会映射到贝塞尔方程的 t 参数。
创建一个位于给定
rectangle上的弧线,该弧线位于angle处。角度以度为单位指定。可以使用负角度指定顺时针弧线。
- arcMoveTo(x, y, w, h, angle)
- Parameters:
x – 浮点数
y – 浮点数
w – 浮点数
h – 浮点数
angle – 浮点数
这是一个重载函数。
创建一个位于占据QRectF(
x,y,width,height)的弧上的移动,角度为angle。警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
创建一个占据给定
rectangle的弧线,从指定的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()组合 一个 QPainterPath- arcTo(x, y, w, h, startAngle, arcLength)
- Parameters:
x – 浮点数
y – 浮点数
w – 浮点数
h – 浮点数
startAngle – 浮点数
arcLength – 浮点数
这是一个重载函数。
创建一个占据矩形QRectF(
x,y,width,height)的弧线,从指定的startAngle开始,并逆时针延伸sweepLength度。返回此绘制路径的边界矩形,作为一个具有浮点精度的矩形。
另请参阅
- capacity()¶
- Return type:
整数
返回由
QPainterPath分配的元素数量。- clear()¶
清除存储的路径元素。
这允许路径重用之前的内存分配。
另请参阅
- closeSubpath()¶
通过绘制一条线到子路径的起点来关闭当前子路径,自动开始一个新路径。新路径的当前点是(0, 0)。
如果子路径不包含任何元素,此函数不执行任何操作。
另请参阅
moveTo()组合 一个 QPainterPath- connectPath(path)¶
- Parameters:
路径 –
QPainterPath
通过添加一条从该路径的最后一个元素到给定路径的第一个元素的线,将给定的
path连接到此路径。另请参阅
addPath()组合 一个 QPainterPath- contains(p)¶
- Parameters:
p –
QPainterPath- Return type:
布尔
如果给定路径
p包含在当前路径中,则返回true。如果当前路径和p的任何边相交,则返回false。路径上的集合操作将把路径视为区域。非闭合路径将被视为隐式闭合。
另请参阅
- contains(pt)
- Parameters:
pt –
QPointF- Return type:
布尔
如果给定的
point在路径内,则返回true,否则返回false。另请参阅
- contains(rect)
- Parameters:
矩形 –
QRectF- Return type:
布尔
如果给定的
rectangle在路径内,则返回true,否则返回false。返回包含此路径中所有点和控制点的矩形。
此函数的计算速度明显快于精确的
boundingRect(),并且返回的矩形始终是boundingRect()返回矩形的超集。另请参阅
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
在当前位置和给定的
endPoint之间添加一条三次贝塞尔曲线,使用由c1和c2指定的控制点。添加曲线后,当前位置将更新为曲线的终点。

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)
- Parameters:
ctrlPt1x – 浮点数
ctrlPt1y – 浮点数
ctrlPt2x – 浮点数
ctrlPt2y – 浮点数
endPtx – 浮点数
endPty – 浮点数
这是一个重载函数。
在当前位置和终点 (
endPointX,endPointY) 之间添加一条三次贝塞尔曲线,控制点由 (c1X,c1Y) 和 (c2X,c2Y) 指定。返回路径的当前位置。
返回在绘制路径中给定
index处的元素。- elementCount()¶
- Return type:
整数
返回绘制路径中的路径元素数量。
返回画家路径当前设置的填充规则。
另请参阅
- intersected(r)¶
- Parameters:
r –
QPainterPath- Return type:
返回一个路径,该路径是此路径的填充区域与
p的填充区域的交集。由于进行贝塞尔曲线交集的数值不稳定性,贝塞尔曲线可能会被展平为线段。- intersects(p)¶
- Parameters:
p –
QPainterPath- Return type:
布尔
如果当前路径在任何点与给定路径
p相交,则返回true。如果当前路径包含或被p的任何部分包含,也返回true。路径上的集合操作将把路径视为区域。非闭合路径将被视为隐式闭合。
另请参阅
- intersects(rect)
- Parameters:
矩形 –
QRectF- Return type:
布尔
如果给定的
rectangle中的任何点与路径相交,则返回true;否则返回false。如果构成矩形的任何一条线与路径的任何部分相交,或者矩形的任何部分与路径所包围的任何区域重叠,则存在交点。此函数遵循当前的
fillRule来确定路径内部的内容。另请参阅
- isEmpty()¶
- Return type:
布尔
如果此路径中没有元素,或者唯一元素是
MoveToElement,则返回true;否则返回false。另请参阅
- length()¶
- Return type:
浮点数
返回当前路径的长度。
从当前位置到给定的
endPoint添加一条直线。绘制完直线后,当前位置将更新为直线的终点。另请参阅
addPolygon()addRect()组合 一个 QPainterPath- lineTo(x, y)
- Parameters:
x – 浮点数
y – 浮点数
这是一个重载函数。
从当前位置画一条线到点 (
x,y)。将当前点移动到给定的
point,隐式地开始一个新的子路径并关闭前一个。另请参阅
closeSubpath()组合 一个 QPainterPath- moveTo(x, y)
- Parameters:
x – 浮点数
y – 浮点数
这是一个重载函数。
将当前位置移动到 (
x,y) 并开始一个新的子路径,隐式关闭前一个路径。- __ne__(other)¶
- Parameters:
其他 –
QPainterPath- Return type:
布尔
如果此画家路径与给定的
path不同,则返回true。请注意,比较路径可能涉及逐个元素的比较,这对于复杂路径来说可能会很慢。
另请参阅
operator==()- __and__(other)¶
- Parameters:
其他 –
QPainterPath- Return type:
返回此路径与
other路径的交集。另请参阅
intersected()operator&=()united()operator|()- __iand__(other)¶
- Parameters:
其他 –
QPainterPath- Return type:
将此路径与
other相交,并返回对此路径的引用。另请参阅
intersected()operator&()operator|=()- __mul__(m)¶
- Parameters:
m –
QTransform- Return type:
- __add__(other)¶
- Parameters:
其他 –
QPainterPath- Return type:
返回此路径与
other路径的并集。此函数等效于operator|()。另请参阅
united()operator+=()operator-()- __iadd__(other)¶
- Parameters:
其他 –
QPainterPath- Return type:
将此路径与
other结合,并返回对此路径的引用。这相当于operator|=()。另请参阅
united()operator+()operator-=()- __sub__(other)¶
- Parameters:
其他 –
QPainterPath- Return type:
从该路径的副本中减去
other路径,并返回副本。另请参阅
subtracted()operator-=()operator+()- __isub__(other)¶
- Parameters:
其他 –
QPainterPath- Return type:
从这个路径中减去
other,并返回对此路径的引用。另请参阅
subtracted()operator-()operator+=()- __eq__(other)¶
- Parameters:
其他 –
QPainterPath- Return type:
布尔
如果此painterpath等于给定的
path,则返回true。请注意,比较路径可能涉及逐个元素的比较,这对于复杂路径来说可能会很慢。
另请参阅
operator!=()- __or__(other)¶
- Parameters:
其他 –
QPainterPath- Return type:
返回此路径与
other路径的并集。另请参阅
united()operator|=()intersected()operator&()- __ior__(other)¶
- Parameters:
其他 –
QPainterPath- Return type:
将此路径与
other结合,并返回对此路径的引用。另请参阅
united()operator|()operator&=()- percentAtLength(t)¶
- Parameters:
t – 浮点数
- Return type:
浮点数
返回指定长度
len处整个路径的百分比。请注意,与其他百分比方法类似,如果路径中存在曲线,百分比测量与长度不是线性的。当存在曲线时,百分比参数会映射到贝塞尔方程的 t 参数。
返回当前路径在百分比
t处的点。参数t必须在 0 和 1 之间。请注意,与其他百分比方法类似,如果路径中存在曲线,百分比测量与长度不是线性的。当存在曲线时,百分比参数会映射到贝塞尔方程的 t 参数。
在当前位置和给定的
endPoint之间添加一个二次贝塞尔曲线,控制点由c指定。添加曲线后,当前点更新为曲线的终点。
另请参阅
cubicTo()组合 一个 QPainterPath- quadTo(ctrlPtx, ctrlPty, endPtx, endPty)
- Parameters:
ctrlPtx – 浮点数
ctrlPty – 浮点数
endPtx – 浮点数
endPty – 浮点数
这是一个重载函数。
在当前点和终点 (
endPointX,endPointY) 之间添加一个二次贝塞尔曲线,控制点由 (cx,cy) 指定。- reserve(size)¶
- Parameters:
size – int
在
QPainterPath的内部内存中预留给定数量的元素。尝试为至少
size个元素分配内存。另请参阅
clear()capacity()reserve()- setElementPositionAt(i, x, y)¶
- Parameters:
i – 整数
x – 浮点数
y – 浮点数
将索引为
index的元素的 x 和 y 坐标设置为x和y。将绘制路径的填充规则设置为给定的
fillRule。Qt 提供了两种填充路径的方法:Qt::OddEvenFill(默认)
Qt::WindingFill


另请参阅
- simplified()¶
- Return type:
返回此路径的简化版本。这意味着合并所有相交的子路径,并返回一个不包含相交边的路径。连续的平行线也将被合并。简化后的路径将始终使用默认的填充规则,Qt::OddEvenFill。由于贝塞尔曲线相交的数值不稳定性,贝塞尔曲线可能会被展平为线段。
- slopeAtPercent(t)¶
- Parameters:
t – 浮点数
- Return type:
浮点数
返回路径在百分比
t处的斜率。参数t必须在 0 和 1 之间。请注意,与其他百分比方法类似,如果路径中存在曲线,百分比测量与长度不是线性的。当存在曲线时,百分比参数会映射到贝塞尔方程的 t 参数。
- subtracted(r)¶
- Parameters:
r –
QPainterPath- Return type:
返回一个路径,该路径是从此路径的填充区域中减去
p的填充区域。路径上的集合操作将把路径视为区域。非闭合路径将被视为隐式闭合。由于贝塞尔曲线交点的数值不稳定性,贝塞尔曲线可能会被展平为线段。
- swap(other)¶
- Parameters:
其他 –
QPainterPath
将此画家的路径与
other交换。此操作非常快速且永远不会失败。- toFillPolygon([matrix=QTransform()])¶
- Parameters:
矩阵 –
QTransform- Return type:
使用
QTransformmatrix将路径转换为多边形,并返回该多边形。多边形是通过首先将所有子路径转换为多边形,然后使用重绕技术来确保可以使用正确的填充规则填充重叠的子路径。
请注意,回绕会在多边形中插入额外的线条,因此填充多边形的轮廓与路径的轮廓不匹配。
另请参阅
toSubpathPolygons()toFillPolygons()QPainterPath 转换- toFillPolygons([matrix=QTransform()])¶
- Parameters:
矩阵 –
QTransform- Return type:
QPolygonF的列表
使用
QTransformmatrix将路径转换为多边形列表,并返回该列表。该函数与
toFillPolygon()函数的不同之处在于它创建了多个多边形。提供此函数的原因是,尽管绘制的总点数相同,但绘制多个小多边形通常比绘制一个大多边形更快。toFillPolygons() 函数与
toSubpathPolygons()函数的不同之处在于,它只为具有重叠边界矩形的子路径创建多边形。与
toFillPolygon()函数类似,此函数使用重绕技术来确保可以使用正确的填充规则填充重叠的子路径。请注意,重绕会在多边形中插入额外的线条,因此填充多边形的轮廓与路径的轮廓不匹配。另请参阅
toSubpathPolygons()toFillPolygon()QPainterPath 转换- toReversed()¶
- Return type:
创建并返回路径的反向副本。
元素的顺序被反转了:如果一个
QPainterPath是通过按指定顺序调用moveTo()、lineTo()和cubicTo()函数来组成的,那么反转的副本是通过调用cubicTo()、lineTo()和moveTo()来组成的。- toSubpathPolygons([matrix=QTransform()])¶
- Parameters:
矩阵 –
QTransform- Return type:
QPolygonF的列表
使用
QTransformmatrix将路径转换为多边形列表,并返回该列表。此函数为每个子路径创建一个多边形,无论子路径是否相交(即重叠的边界矩形)。为了确保正确填充这些重叠的子路径,请改用
toFillPolygons()函数。另请参阅
toFillPolygons()toFillPolygon()QPainterPath 转换这是一个重载函数。
通过给定的
offset平移路径中的所有元素。另请参阅
- translate(dx, dy)
- Parameters:
dx – 浮点数
dy – 浮点数
将路径中的所有元素平移(
dx,dy)。另请参阅
这是一个重载函数。
返回通过给定
offset平移后的路径副本。另请参阅
- translated(dx, dy)
- Parameters:
dx – 浮点数
dy – 浮点数
- Return type:
返回一个通过(
dx,dy)平移后的路径副本。另请参阅
- united(r)¶
- Parameters:
r –
QPainterPath- Return type:
返回一个路径,该路径是此路径的填充区域与
p的填充区域的并集。路径上的集合操作将把路径视为区域。非闭合路径将被视为隐式闭合。由于贝塞尔曲线交点的数值不稳定性,贝塞尔曲线可能会被展平为线段。
- class Element¶
-
概要¶
方法¶
def
isCurveTo()def
isLineTo()def
isMoveTo()def
__ne__()def
__eq__()
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
一旦构建了一个
QPainterPath对象,就可以向路径中添加子路径,如直线和曲线(创建LineToElement和CurveToElement组件)。线条和曲线从
currentPosition()延伸到作为参数传递的位置。QPainterPath对象的currentPosition()始终是最后添加的子路径的结束位置(或初始起点)。moveTo()函数可用于移动currentPosition()而不添加线条或曲线,从而创建一个MoveToElement组件。另请参阅
- PySide6.QtGui.QPainterPath.Element.x¶
- PySide6.QtGui.QPainterPath.Element.y¶
- PySide6.QtGui.QPainterPath.Element.type¶
- isCurveTo()¶
- Return type:
布尔
如果元素是曲线,则返回
true,否则返回false。另请参阅
- isLineTo()¶
- Return type:
布尔
如果元素是一条线,则返回
true,否则返回false。另请参阅
- isMoveTo()¶
- Return type:
布尔
如果元素正在移动当前位置,则返回
true,否则返回false。另请参阅
如果此元素不等于
other,则返回true;否则返回false。另请参阅
operator==()如果此元素等于
other,则返回true;否则返回false。另请参阅
operator!=()