QGraphicsView 是否拥有其关联图形场景的所有权?

发布于 2024-10-16 18:36:26 字数 251 浏览 4 评论 0原文

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

QGraphicsScene* scene = new QGraphicsScene();

并将其与图形视图关联,

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

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

I was wondering... if I allocate a graphics scene

QGraphicsScene* scene = new QGraphicsScene();

and associate it with a graphics view

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

does the graphics view take ownership of the scene? In other words, does the graphics view delete the scene in its destructor or should I delete the scene myself?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

长亭外,古道边 2024-10-23 18:36:26

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

QGrahpicsView::setScene() 的文档缺少有关场景所有权发生情况的信息,但情况与其他视图相同;例如来自 void QWebView::setPage ( QWebPage * page )< 的文档/代码>

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

The answer is no.
That's because Qt makes it possible to display one model (QGraphicsScene in this case) in many views which is a standard feature of every model/view framework.

Documentation of QGrahpicsView::setScene() lacks information about what happens to ownership of a scene but the situation is the same as with others views; for example from documentation of void QWebView::setPage ( QWebPage * page )

The parent QObject of the provided page remains the owner of the object.
If the current document is a child of
the web view, it will be deleted.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文