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

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

QGraphicsScene* scene = new QGraphicsScene();

и свяжу ее с графическим представлением

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

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

1 Ответ

3 голосов
/ 10 февраля 2011

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

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

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

...