 
        Qt/C++ - Урок 059. Требуется ли удалять QStandardItem из памяти вручную при вызове метода clear в модели данных?
При работе с таблицами, да и вообще с различными данными в C++ требуется контроль над удалением, чтобы не было утечек памяти. Но требуется ли такой тотальный контроль при удалении объектов QStandardItem помещённых вQStandardItemModel , у которой вызвали метод clear ?
Такой вопрос может возникнуть исходя из того, каким образом обычно добавляются объекты QStandardItem вQStandardItemModel, а именно:
- QList<QStandardItem *> items;
- items.append(new QStandardItem("Item 1"));
- items.append(new QStandardItem("Item 2"));
- items.append(new QStandardItem("Item 3"));
- model->appendRow(items);
И так далее в цикле для заполнения необходимого числа строк. При этом указатели на данные объекты нигде в коде больше не фигурируют и не удаляются. Поэтому и возникает вопрос о том, что происходит, если вызвать метод clear .
Когда объект QStandardItem передаётся в QStandardItemModel , то права собственности на данные объекты передаются в модель. И при вызове метода clear модель автоматически удаляет эти объекты из памяти.
|   
                                                                                                        Это интересно
                                                                                                     
                                                                                                        +1                                                    
                                                 | |||
 
                     
        
 
    
Последние откомментированные темы:
- 
Qt/C++ - Урок 012. QShortcut или Горячие клавиши в Qt
 (2) 
 
 
    
                Legotckoi 
    
 ,
  21.01.2017
20251031133759