pyside2 QGraphicsPathItem 绕线填充

pyside2 QGraphicsPathItem WindingFill

您好,我有一个关于如何在 pyside2 (pyqt) 中正确填充 QGraphicsPathItem 的问题。目前我正在编写一个 gerber 文件可视化工具,对于具有多个几何形状的形状,我正在使用一个路径将它们作为一个对象。

虽然在填充项目时它会在一些但不是所有路径区域中留下间隙。 标记为 1,2 和 3 的对象区域所有以相同方式创建但正在填充不同。这是使用填充规则 Qt.WindingFill.

1) 填写正确

2) 圆圈与其他 1 个对象重叠的地方很清楚,但与其他 2 个对象重叠的地方被填充了(这看起来像 oddevenfill)

3) 我不知道这里发生了什么我不知道

这是构建路径的粗略过程,只是一个矩形,然后是另一个横向分层,角上有 4 个圆圈

供参考的最小代码示例:

我尝试过只使用单个对象,所以 2 个 QgraphicsRectItems 和 4 个椭圆项目,最终结果很好,但是我有 6 个对象超过 1 个,可能有数千个,所以性能是使用 a 的痛苦原因加载单个项目的路径项目。

所以我要总结的问题是为什么它以不同的方式填充它们,有没有办法让它不那样做?

修复它,问题是我不记得了,但它与未正确绘制多边形有关