Russian Qt Forum
Сентябрь 30, 2024, 02:26 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: А кто будет Освобождать Память ? (ItemModel / Item)  (Прочитано 4548 раз)
0x0001
Гость
« : Май 05, 2010, 15:19 »

код из Qt Assistant:
Код:
 QStandardItemModel model(4, 4);
 for (int row = 0; row < 4; ++row) {
     for (int column = 0; column < 4; ++column) {
         QStandardItem *item = new QStandardItem(QString("row %0, column %1").arg(row).arg(column));
         model.setItem(row, column, item);
     }
 }
а КТО будет Освобождать Память этих Итемов (см. new QStandardItem) после Разрушении Объекта model Непонимающий
Записан
BRE
Гость
« Ответ #1 : Май 05, 2010, 15:21 »

а КТО будет Освобождать Память этих Итемов (см. new QStandardItem) после Разрушении Объекта model Непонимающий
Он и будет, т.е. объект model.
Записан
0x0001
Гость
« Ответ #2 : Май 05, 2010, 15:22 »

а КТО будет Освобождать Память этих Итемов (см. new QStandardItem) после Разрушении Объекта model Непонимающий
Он и будет, т.е. объект model.


Точно проверено ли ?
Записан
alexman
Гость
« Ответ #3 : Май 05, 2010, 15:23 »

QStandardItemModel::~QStandardItemModel ()
Destructs the model. The model destroys all its items.
Записан
0x0001
Гость
« Ответ #4 : Май 05, 2010, 15:24 »

QStandardItemModel::~QStandardItemModel ()
Destructs the model. The model destroys all its items.
ОК, поверю.. не буду проверять.....

Спасибо!
Записан
NicK
Гость
« Ответ #5 : Май 07, 2010, 19:07 »

а что произойдет со всеми элементами модели, если вызвать model->clear()
Справка гласит:
Цитировать
void QStandardItemModel::clear ()
Removes all items (including header items) from the model and sets the number of rows and columns to zero.
освободится ли память, занимаемая элементами модели после ее очистки или перед очисткой надо вручную удалять все ее элементы?
Записан
kibsoft
Хакер
*****
Offline Offline

Сообщений: 625


Просмотр профиля WWW
« Ответ #6 : Май 07, 2010, 19:18 »

Цитировать
Call clear() to remove all items from the model.
Т.е. они сами удаляются.

Цитировать
void QStandardItemModel::setItem ( int row, int column, QStandardItem * item )
Sets the item for the given row and column to item. The model takes ownership of the item. If necessary, the row count and column count are increased to fit the item. The previous item at the given location (if there was one) is deleted.
Записан

http://kibsoft.ru - Download the Qt Media Encoding Library here

The apps that were written using QtMEL:
http://srecorder.com - Screen recording software
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.158 секунд. Запросов: 23.