Qt 如何合并QpainterPath

Qt 如何合并QpainterPath,qt,qt4,Qt,Qt4,我需要将两个QPainterPath合并在一起。问题是,它们似乎总是两条不同的路径 我需要的是,合并真正成为相同的,就像一个单一的(从一个复杂的多边形或一个复杂的线束)已经被构造,没有任何内部线工件或子路径,因为它们之前是两个不同的路径。这似乎是一个非常简单和正常的任务,但我不知道如何做。如果您还没有尝试,我会说united(QPainterPath)方法(QPainterPath类)就是您正在寻找的方法。或者可能是减去(QPainterPath),或者相交(QPainterPath),这取决于

我需要将两个
QPainterPath
合并在一起。问题是,它们似乎总是两条不同的路径


我需要的是,合并真正成为相同的,就像一个单一的(从一个复杂的多边形或一个复杂的线束)已经被构造,没有任何内部线工件或子路径,因为它们之前是两个不同的路径。这似乎是一个非常简单和正常的任务,但我不知道如何做。

如果您还没有尝试,我会说
united(QPainterPath)
方法(QPainterPath类)就是您正在寻找的方法。或者可能是
减去(QPainterPath)
,或者
相交(QPainterPath)
,这取决于您试图实现的目标


您能给我们提供到目前为止您尝试的更多详细信息吗?

如果您从两条路径p1和p2开始,每条路径都包含一个子路径,那么:

joined = p1.toSubpathPolygons()[0] + p2.toSubpathPolygons()[0]
p3 = QPainterPath()
p3.addPolygon(joined)
还可以使用path.toReversed()更改每个路径的连接方向。
(很抱歉,这是python语法,但对于C++应该几乎相同)

首先使用重载的
++
运算符合并路径,然后对其调用
simplified()
,可能会有所帮助


至少这解决了我的问题,当我有两条正方形的路径,它们有一条共同的边,并且没有调用
simplified()
它仍然是两个正方形,但与预期的一样是一个矩形。

还不完全清楚“似乎是两条不同的路径”是什么意思。也许和我以前一样。检查我的答案。似乎p3=p1+p2(也是python语法)具有相同的效果(例如,p1和p2是两个相邻的矩形,这是相同的)。