Принимает ли QGraphicsView право собственности на связанную графическую сцену?

Мне было интересно... если я выделю графическую сцену

QGraphicsScene* scene = new QGraphicsScene();

и связать его с графическим представлением

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

захватывает ли графическое представление сцену? Другими словами, графическое представление удаляет сцену в ее деструкторе, или я должен удалить сцену самостоятельно?

1 ответ

Решение

Ответ - нет.
Это потому, что Qt позволяет отображать одну модель (QGraphicsScene в данном случае) во многих представлениях, что является стандартной функцией каждой модели / представления.

Документация QGrahpicsView::setScene() не хватает информации о том, что происходит с владельцем сцены, но ситуация такая же, как и у других; например из документации void QWebView::setPage ( QWebPage * page )

Родительский QObject предоставленной страницы остается владельцем объекта. Если текущий документ является дочерним по отношению к веб-представлению, он будет удален.

Другие вопросы по тегам