Здравствуйте, гость ( Вход | Регистрация )
SABROG | Дата 28.5.2009, 8:09 |
Цитата Поставь себе Purify Plus от IBM и смотри где утечки идут. Взять можно на торрентс ру с ключиком. А MinGW поддерживается? А ему всё равно какой компилятор, он сразу на exe'шнике работает, причем не важно debug или release. |
|
gmurik2 | Дата 28.5.2009, 7:05 |
Цитата Поставь себе Purify Plus от IBM и смотри где утечки идут. Взять можно на торрентс ру с ключиком. А MinGW поддерживается? |
|
SABROG | Дата 27.5.2009, 15:01 |
Поставь себе Purify Plus от IBM и смотри где утечки идут. Взять можно на торрентс ру с ключиком. | |
kwisp | Дата 27.5.2009, 14:50 |
gmurik2, ну не знаю куда деваются 16Кб в 5 сек 1. воспользовавшись QTableWidget::findItems узнай размер списка всех элементов таблицы сравни с добавляемыми и удаляемыми если колличества равны то причина не в элементах. 2. проверь баг трекер троллей. 3. попробуй грохать всю таблицу и оцени результат может увидишь что-то полезное. 4. поищи по форуму схожие темы. |
|
gmurik2 | Дата 27.5.2009, 14:38 |
да действительно не верно И как винда это пропустила исправил (int i = ui.ActiveOrdersTable->rowCount()-1; i >= 0; i--) ситуация не изменилась... пробовал чистить таблицу еще и так
тоже самое |
|
kwisp | Дата 27.5.2009, 14:13 |
gmurik2, а в циклах разве верно написано условие (int i = ui.ActiveOrdersTable->rowCount(); i >= 0; i--) пусть 4 строки. за номерами 0,1,2,3 а первая удаляемая будет за номером 4. при таком раскладе . поправь если я ошибаюсь. |
|
gmurik2 | Дата 27.5.2009, 13:58 |
Цитата а clearSpans() зачем вызывается после него интересно вообще доступ к элементу по ->item(int r,int c) осуществим? если нет то вот это доступ осуществим, а вызываю чтобы убрать объединения столбцов, потому как при следующем заполнении таблицы они остаются. Но даже если убрать clearSpans() - память утекает со скоростью 16 кб в 5сек, т.е. с той же скоростью что и с ним может подойдем к решению вопроса другим путем, как заполнить QTableWidget данными и периодически их обновлять, но без проблемы утечки памяти? |
|
kwisp | Дата 27.5.2009, 13:48 |
и наверно сделав QList<QTableWidgetItem *> QTableWidget::findItems ( const QString & text, Qt::MatchFlags flags ) const я получу те же яйца, только вид сбоку наверное получишь а clearSpans() зачем вызывается после него интересно вообще доступ к элементу по ->item(int r,int c) осуществим? если нет то вот это for(int i = ui.ActiveOrdersTable->rowCount(); i >= 0; i--) { for(int j = ui.ActiveOrdersTable->columnCount(); j >= 0; j--) { delete ui.ActiveOrdersTable->item(i,j); } ui.ActiveOrdersTable->removeRow(i); } не сработает ниразу. |
|
gmurik2 | Дата 27.5.2009, 13:30 |
Придется, наверно, немного рассказать, что делает мой код: в функции setActiveOrdersTable_Apply() происходит заполнение таблицы ActiveOrdersTable из запроса query. далее эта таблица обновляется с некоторой периодичностью по сигналу таймера.
updateActOrdersTable() удаляет все записи, из таблицы, и вызывает setActiveOrdersTable_Apply(). и наверно сделав QList<QTableWidgetItem *> QTableWidget::findItems ( const QString & text, Qt::MatchFlags flags ) const я получу те же яйца, только вид сбоку |
|
kwisp | Дата 27.5.2009, 13:08 |
for(int i = ui.ActiveOrdersTable->rowCount(); i >= 0; i--) { for(int j = ui.ActiveOrdersTable->columnCount(); j >= 0; j--) { delete ui.ActiveOrdersTable->item(i,j); } ui.ActiveOrdersTable->removeRow(i); } вместо этого можно найти все элементы через QList<QTableWidgetItem *> QTableWidget::findItems ( const QString & text, Qt::MatchFlags flags ) const во флагах( Qt::MatchFlags) есть возможность использовать регулярные выраежния. |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 26.4.2024, 22:26 |