PyQt的定制QPolygon得到删除:RuntimeError:封装的C /类型ImagePolygon的C ++对象已被删除

问题描述 投票:0回答:1

我有加载多个图像的程序,并且每幅图像具有由自定义QGraphicsPolygon项表示多边形的阵列。我在与其相应的多边形分成两个QGraphicsScene(每个负载新QGraphicsScene)一个时间加载1个图像。我遇到的问题是,几次图像之间进行切换后,我收到以下错误:“RuntimeError:包装的C / C ++型ImagePolygon已被删除的对象”。这实现使用效果不错,但我已经加了很多东西,因为该计划,现在我得到的错误。

我知道我永远不会失去我引用到自定义QGraphicsPolygons和,这是获得在他们里面删除的唯一的事情是多边形本身。所有其他membervariables保持不变。遗憾的是我没能准确判断QGraphicsPolygon内的多边形被删除代码的确切区域和代码太长,张贴在这里。

我也试图简单的设置一个新的QPolygon每次我把它添加到现场QGraphicsPolygon项目,但是这给了我同样的错误。

请让我知道,如果有人知道什么可以删除这个项目。请我,我从来没有失去参考QGraphicsPolygonItem。

我还希望,如果有人知道的一个很好的方法来调试这一点。我相信我会修正这个错误,如果我能找到它。

先感谢您

pyqt pyqt5 qgraphicsview qgraphicsscene qgraphicsitem
1个回答
0
投票

大量的测试后,我想我找到了问题。由于我在执行我删除QGraphicsScene每次我展示了新的形象,我相信这是删除多边形为好。我不知道为什么,这是以前没有发生的事情,但我设法先删除从现场的所有项目进行修复。我不得不通过的项目,迭代,因为使用clear()方法在场景中删除它们。

© www.soinside.com 2019 - 2024. All rights reserved.