我正在使用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();
}
谢谢。
答案 0 :(得分:2)
添加路径时,只需在QGraphicsPathItem
创建时保留指针
QGraphicsPathItem* pathItem = scene.addPath(m_pathTrack);
然后你就可以从场景中删除它了:
scene->removeItem(pathItem);
编辑(信贷给thuga):
如果您不打算再将此项目放入场景中,则可以在将其从场景中移除后释放其内存。
scene->removeItem(pathItem);
delete pathItem;
答案 1 :(得分:0)
请记住包含相应的头文件QGraphicsItem。 或者您将无法调用该功能。