Управление памятью в Qt - PullRequest
       23

Управление памятью в Qt

10 голосов
/ 26 октября 2010

Привет всем, у меня небольшие сомнения по поводу управления памятью Qt,

Давайте возьмем пример Listview, в listview мы добавляем каждый элемент путем динамического выделения памяти.Таким образом, в этом случае нам нужно вручную удалить все «новые» элементы редактирования ..

Например:

Qlistview *list = new Qlistview;
QStandardItemModel  *mModel = new QStandardItemModel();
list ->setModel(mModel);

for(int I =0;i<10;i++)
{
QsandardItem *item = new QsandardItem(“Hi”);
mModel->appendRow(item);
}

В этом примере элемент должен быть удален вручную?

1 Ответ

16 голосов
/ 26 октября 2010

QStandardItemModel становится владельцем элементов, поэтому они будут автоматически удалены при разрушении модели.Вам все еще нужно удалить саму модель (setModel () не передает владение моделью на представление, поскольку одна модель может использоваться несколькими представлениями).

...