将小部件添加到QGraphicsView

时间:2015-08-31 21:07:10

标签: qt qt4

for(int i =0; i <shapes.size(); i++) // shapes is QList<QWidget*> of QShape
{
    shapes.at(i)->setShape(QShape::ellipse);
    QGraphicsProxyWidget* proxyWid = graphscene->addWidget(shapes.at(i));
}
view->setScene(graphscene);// view is a QGraphicsView object.

我有上面的代码用于在Graphics视图场景中放置一些Qshapes。查看qt4.8 ressource我发现需要创建一个QGraphicsProxyWidget来将场景元素与不同的QWidget桥接起来。代码工作,但我有一个问题,实现是否正确,是否正确分配了proxywid指针?以这种方式使用指针是否安全?我试图避免任何记忆问题。

先谢谢你的帮助

1 个答案:

答案 0 :(得分:1)

这样使用它绝对安全。完全如文档link中所述。 Qt有一个父/子层次结构来删除它自己的动态分配的小部件/对象。我确定,该场景将删除由&#34; addWidget()&#34;创建的QGraphicsProxyWidget对象。在它的析构函数中。