我有一个加载多个图像的程序,每个图像都有一个由自定义QGraphicsPolygon项表示的多边形数组。我一次加载一个图像及其各自的多边形到两个QGraphicsScene中(每次加载新的QGraphicsScene )。我遇到的问题是,在图像之间切换了几次之后,我得到了以下错误:"RuntimeError: ImagePolygon类型的包装C/C++对象已被删除“。这个实现过去工作得很好,但后来我在程序中添加了很多东西,现在我得到了错误。
我知道我永远不会丢失对自定义QGraphicsPolygons的引用,唯一被删除的就是多边形本身。所有其他成员变量保持不变。不幸的是,我不能准确地指出QGraphicsPolygon中多边形被删除的确切代码区域,并且代码太长了,不能在这里发布。
我还尝试在每次将QGraphicsPolygon项添加到场景中时简单地为它设置一个新的QPolygon,但这给出了相同的错误。
请让我知道,如果有人知道什么可能会删除此项目。保持在我的I永远不会丢失对QGraphicsPolygonItem的引用。
如果有人知道一个好的方法来调试它,我也会很感激。我确信如果我能找到这个错误,我就能修复它。
提前谢谢你
发布于 2019-02-10 00:45:43
经过多次测试,我想我找到了问题所在。因为在我的实现中,我每次显示新图像时都会删除QGraphicsScene,我相信这也是在删除多边形。我不知道为什么之前没有发生这种情况,但我设法修复了它,首先从场景中删除了所有项目。我必须遍历这些项,因为在场景中使用clear()方法会删除它们。
https://stackoverflow.com/questions/54607962
复制相似问题