Я пишу средство просмотра изображений с Qt на основе QGraphicsScene функции Qt. Я создаю модель каждого изображения в классе ImageModel и управляю отображением изображения в классе ImageView. Класс ImageView выглядит следующим образом (только ту часть, которая интересна):Управление памятью для переменной члена класса в Qt
class ImageView
{
public:
ImageView(QWidget *parent);
QGraphicsView * getView() {return view; }
private:
//qgraphics scene elements
QGraphicsScene *scene;
QGraphicsView *view;
QGraphicsPixmapItem *curItem;
};
Конструктор класса выглядит следующим образом:
ImageView::ImageView(QWidget *parent)
{
//create scene and view with parent the main window
//such that the memory management is done by qt
scene = new QGraphicsScene(parent);
view = new QGraphicsView(parent);
view->setScene(scene);
}
Также у меня есть указатель на ImageView в моем выводе QMainWindow.
Мой вопрос: должен ли я позволить Qt выполнять управление памятью, установив мое основное окно в качестве родительского элемента представления и сцены или я должен сам позаботиться о управлении памятью (оставьте представление и сцену без родителей и удалите их в классе деструкторов)? Какая хорошая стратегия в этом случае?
Это правильно, я должен сделать вид ребенка в главном окне. Спасибо за ответ. – Cristi