crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в QTableView очистка памяти
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
mevn Дата 27.12.2013, 18:26
 
Цитата(Litkevich Yuriy @ 26.12.2013, 20:03) *
Цитата(mevn @ 24.12.2013, 14:40) *
Таблица очищается память не высвобождается

2) Qt не всегда возвращает память ОС (чтобы в следующий раз её не запрашивать);
3) ОС не всегда забирает высвободившуюся память у приложения в кучу (а вдруг приложение опять начнёт просить выделить память).
Посему простейшие средства оценки, типа диспетчера задач, для отслеживания подобных ситуаций не годятся.


во-первых:
прокрути цикл (в голове или на бумаге), какой элемент ты удаляешь во второй проход, в третий, ... ?
(не забывай, что с каждым циклом у тебя кол-во элементов уменьшается)



Спасибо, что сказали).
Это реальное решение проблемы. Бился над ней пару дней (правда решил до Вашего ответа, но все равно СПАСИБО!!! Вы правы).
Обнаружил возврат памяти, когда загрузил компмемори по полной (несколько виртуальных машин, плюс все все все, процнетов на 96)
После этого все заработало как ожидальсь...

Litkevich Yuriy Дата 26.12.2013, 19:03
 
Цитата(mevn @ 24.12.2013, 14:40) *
Таблица очищается память не высвобождается

2) Qt не всегда возвращает память ОС (чтобы в следующий раз её не запрашивать);
3) ОС не всегда забирает высвободившуюся память у приложения в кучу (а вдруг приложение опять начнёт просить выделить память).
Посему простейшие средства оценки, типа диспетчера задач, для отслеживания подобных ситуаций не годятся.


во-первых:
прокрути цикл (в голове или на бумаге), какой элемент ты удаляешь во второй проход, в третий, ... ?
(не забывай, что с каждым циклом у тебя кол-во элементов уменьшается)
mevn Дата 24.12.2013, 12:40
  Добрый день.
Не подскажете ли, как можно решить следующую проблему.
Имеется таблица
class SqlDBTbl : public QObject
{
    Q_OBJECT
protected:
    QStandardItemModel    model;               ///< модель для хранения данных
    QItemSelectionModel    sel_model;           ///< модель для управления выделением записей
    QTableView            *table;               ///< таблица для отображения данных
...

Данная таблица заполняется данными.
Необходимо чистить память занимаемую этой таблицей. Пробовал так
        if(table)
    {
    
        while (model.rowCount())
        {    
            for(int ii = 0; ii< model.columnCount();ii++ )
            {
                delete model.item(0,ii);
        
            }
            model.removeRow(0 );
        }
        model.clear();
        table->setModel(&model);
        table->reset();
    
    }

Таблица очищается память не высвобождается
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 18.4.2024, 16:11