从QGraphicsScene中删除路径

时间:2014-06-23 10:40:36

标签: qt qgraphicsscene

我正在使用QPainterPath在qgraphicsscene上绘制一个多边形。但是有一段时间我想要删除路径后我无法删除它。有人能告诉我如何删除/删除绘制的路径。 我正在尝试以下代码。

 In header File:

 QGraphicsScene *scene;
 QGraphicsPixmapItem *m_pixItem;
 QPainterPath m_pathTrack;
 QPolygon m_qpolygon;


 In cpp file

void MyClass::AddPath()
{
  //Slot to add path to the scene

 QImage l_img("Path");
 graphicsView->setScene(&scene);
 m_pixtemItem->setPixmap(QPixmap::fromImage(image));

 //Code here to Adding points to polygon. The points are coming at regular interval
 m_qpolygon.append(Point);

 m_pathTrack.addPolygon(m_qpolygon);
 scene.addPath(m_pathTrack);
}

// In slot to delete path

 void MyClass::DeletePath()
 {
    //I tried doing this but the path does not erase

    m_pathTrack = QPainterPath();
 }

谢谢。

2 个答案:

答案 0 :(得分:2)

添加路径时,只需在QGraphicsPathItem创建时保留指针

QGraphicsPathItem* pathItem = scene.addPath(m_pathTrack);

然后你就可以从场景中删除它了:

scene->removeItem(pathItem);

编辑(信贷给thuga)

如果您不打算再将此项目放入场景中,则可以在将其从场景中移除后释放其内存。

scene->removeItem(pathItem);
delete pathItem;

答案 1 :(得分:0)

请记住包含相应的头文件QGraphicsItem。 或者您将无法调用该功能。