crossplatform.ru

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

> Утечка памяти QTextEdit
Anticross
  опции профиля:
сообщение 6.8.2010, 12:17
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 22
Регистрация: 31.3.2010
Пользователь №: 1579

Спасибо сказали: 0 раз(а)




Репутация:   0  


При добавлении каждой последующей строки в QTextEdit съедается оперативная память. Дело в том что я использую виджет в качестве лога программы и туда добавляются записи чуть ли не каждую секунду. Была идея организовать вывод таким образом:
1) выводить в виджет определенное количество строк
2) При привышении лимита сохранять содержимое виджета в файл и очищать содержимое виджета
3) При прокрутке вверх либо вниз подгружать соответсвующий файл в виджет.

Может кто знает более простой(или правильный) способ. Подскажите пожалуйста.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Алексей1153
  опции профиля:
сообщение 6.8.2010, 13:41
Сообщение #2


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


Anticross, да не думай, что там в виджете будет. Полагаю, что такое действие как "выделения строк и нажатия del" вообще нельзя допускать )

Лучше применить табличный виджет и сделать на нём фиксированное число строк - ровно сколько влазит на экран. Сообщения же пусть лежат в кеше (если своего нет, могу код скинуть, только там с MFC немного переделать придётся на Qt). И вот, пользователь будет двигать ползунок, а ты будешь двигать воображаемое окно, и оттуда отображать текущие строки. Будет быстро, красиво и монолитно )) Но сами сообщения надо будет в БД хранить (или в аналоге)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 6.8.2010, 13:59
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Anticross если логи не обязательно выводить в QTextEdit, то использование QListView/QTableView и своей модели будет лучшим решением.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 2.12.2024, 19:35