Вопрос собственно такой:
Создаем к примеру QTextEdit и из дополнителного потока создаем пользовательские события для добавления текста в контрол. При этом если кол-во текста привышает определенное кол-во строк, то строки сдвигаются вверх (верхняя удаляется, нижняя добавляется) - как в консоли.
Только вот память не освобождается! И программа продолжает сжирать по 4-8 Кб в секунду (зависит от скорости вывода текста).
Расскажите, пожалуйста, как в Qt работает память и можно ли избавиться от пожирания памяти приложением?
Спасибо.
Освобождение памяти в Qt (Когда в Qt освобождается память?)
Модератор: Модераторы разделов
-
edranovdenis
- Сообщения: 135
- ОС: main mdv2006
Re: Освобождение памяти в Qt
не помню точно, но, вроде, в QTextEdit абзацы представлены в виде списка экземпляров (не помню какого) отдельного класса. необходимо удалять экземпляры абзацев.
имхо классы Qt лучше вообще изучать с QWidget.
имхо классы Qt лучше вообще изучать с QWidget.
Живая мысль подобна реке бегущей с гор - будучи полноводной, не засохнет, но непременно впадет в океан.
-
S-Diablo
- Сообщения: 4
- ОС: SuSE 10.1-Mandriva 2006-WinXP
Re: Освобождение памяти в Qt
не помню точно, но, вроде, в QTextEdit абзацы представлены в виде списка экземпляров (не помню какого) отдельного класса. необходимо удалять экземпляры абзацев.
Искал, но ничего подобного не нашел, если не трудно подскажите, что за класс. Буду признателен.
-
eduard_pustobaev
- Сообщения: 2629
- Статус: Ленивец
- ОС: Arch/Debian.
Re: Освобождение памяти в Qt
edranovdenis писал(а): ↑14.12.2006 17:50не помню точно, но, вроде, в QTextEdit абзацы представлены в виде списка экземпляров (не помню какого) отдельного класса. необходимо удалять экземпляры абзацев.
имхо классы Qt лучше вообще изучать с QWidget.
Хмм... QTextBlock->(QTextCursor::insert())->QTextDocument::setDocument();
Может что-либо из этого по душе придётся? Смотреть в assistant про rich text.
В дисгармонии со вселенной.
-
v04bvs
- Сообщения: 636
- ОС: Debian GNU/Linux
Re: Освобождение памяти в Qt
S-Diablo писал(а): ↑11.12.2006 21:15Вопрос собственно такой:
Создаем к примеру QTextEdit и из дополнителного потока создаем пользовательские события для добавления текста в контрол. При этом если кол-во текста привышает определенное кол-во строк, то строки сдвигаются вверх (верхняя удаляется, нижняя добавляется) - как в консоли.
Только вот память не освобождается! И программа продолжает сжирать по 4-8 Кб в секунду (зависит от скорости вывода текста).
Продемонстрируйте это на минимальном примере.