我想知道...如果我分配一个图形场景
QGraphicsScene* scene = new QGraphicsScene();
并将其与图形视图相关联
this->ui->graphicsView->setScene(scene);
图形视图是否拥有场景的所有权?换句话说,图形视图是在其析构函数中删除场景还是我应该自己删除场景?
我想知道...如果我分配一个图形场景
QGraphicsScene* scene = new QGraphicsScene();
并将其与图形视图相关联
this->ui->graphicsView->setScene(scene);
图形视图是否拥有场景的所有权?换句话说,图形视图是在其析构函数中删除场景还是我应该自己删除场景?
答案是否定的。
这是因为 Qt 可以QGraphicsScene
在多个视图中显示一个模型(在这种情况下),这是每个模型/视图框架的标准功能。
文档QGrahpicsView::setScene()
缺乏关于场景所有权发生了什么的信息,但情况与其他视图相同;例如从文档void QWebView::setPage ( QWebPage * page )
所提供页面的父 QObject 仍然是该对象的所有者。如果当前文档是 Web 视图的子视图,它将被删除。