4

我想知道...如果我分配一个图形场景

QGraphicsScene* scene = new QGraphicsScene();

并将其与图形视图相关联

this->ui->graphicsView->setScene(scene);

图形视图是否拥有场景的所有权?换句话说,图形视图是在其析构函数中删除场景还是我应该自己删除场景?

4

1 回答 1

3

答案是否定的。
这是因为 Qt 可以QGraphicsScene在多个视图中显示一个模型(在这种情况下),这是每个模型/视图框架的标准功能。

文档QGrahpicsView::setScene()缺乏关于场景所有权发生了什么的信息,但情况与其他视图相同;例如从文档void QWebView::setPage ( QWebPage * page )

所提供页面的父 QObject 仍然是该对象的所有者。如果当前文档是 Web 视图的子视图,它将被删除。

于 2011-02-10T11:11:17.710 回答