Отправляет email-рассылки с помощью сервиса Sendsay
Открытая группа
28 участников
Администратор Legotckoi
Модератор ProgrammersBlog

Последние откомментированные темы:

20250621090632

←  Предыдущая тема Все темы Следующая тема →
пишет:

Qt/C++ - Урок 059. Требуется ли удалять QStandardItem из памяти вручную при вызове метода clear в модели данных?

При работе с таблицами, да и вообще с различными данными в C++ требуется контроль над удалением, чтобы не было утечек памяти. Но требуется ли такой тотальный контроль при удалении объектов QStandardItem помещённых вQStandardItemModel , у которой вызвали метод clear ?

Такой вопрос может возникнуть исходя из того, каким образом обычно добавляются объекты QStandardItem вQStandardItemModel, а именно:

  1. QList<QStandardItem *> items;
  2. items.append(new QStandardItem("Item 1"));
  3. items.append(new QStandardItem("Item 2"));
  4. items.append(new QStandardItem("Item 3"));
  5. model->appendRow(items);

И так далее в цикле для заполнения необходимого числа строк. При этом указатели на данные объекты нигде в коде больше не фигурируют и не удаляются. Поэтому и возникает вопрос о том, что происходит, если вызвать метод clear .

Когда объект QStandardItem передаётся в QStandardItemModel , то права собственности на данные объекты передаются в модель. И при вызове метода clear модель автоматически удаляет эти объекты из памяти.

Читать далее

Это интересно
0

15.03.2017
Пожаловаться Просмотров: 403  
←  Предыдущая тема Все темы Следующая тема →


Комментарии временно отключены