Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Hordi от Декабрь 24, 2008, 18:01



Название: Тормоза QPlainTextEdit...
Отправлено: Hordi от Декабрь 24, 2008, 18:01
Юзаю QPlainTextEdit как просмотрщик текста в режиме ReadOnly. Гружу в него бинарные файлы через setPlainText. Если размеры файла более 200KB, то времени уходит немеряно (и это на мощной тачке). Писать свой отображальщик текста для просмотра больших файлов - нет времени. Посоветуйте хоть что-то...


Название: Re: Тормоза QPlainTextEdit...
Отправлено: panAlexey от Декабрь 24, 2008, 19:04
http://www.riverbankcomputing.co.uk/software/qscintilla/download
Может это поможет?


Название: Re: Тормоза QPlainTextEdit...
Отправлено: Hordi от Декабрь 24, 2008, 19:09
Ой не хотелось бы в коммерческий проект совать разные либы... Из-за одного редактора тащить такую либу - нехорошо, а платить за нее бабки - мне проще написать собственный велосипед, тем более мне не нужно редактировать - достаточно только отображения текста.


Название: Re: Тормоза QPlainTextEdit...
Отправлено: -QT- от Декабрь 25, 2008, 16:30
Не пробовал сам но может создать подкачку с кешированием информации.
А если только для отображения то можно и без кеширования.
Разбить открываемый файл (виртуально) на страницы определив размер страниц таким -
сколько размещается данных для просмотра на экране и подгружать постоянно 3 страницы.

1 -  если перешли на эту страницу подкачиваем еще одну выше по блокам и удаляем 3-ю
2 - смотрим сейчас
3 - если перешли на эту страницу подкачиваем еще одну ниже по блокам и удаляем 1-ю


Название: Re: Тормоза QPlainTextEdit...
Отправлено: SABROG от Декабрь 25, 2008, 17:12
А по ctr+a, ctr+c что должно происходить в этом случае, копирование всего файла или только тех подгруженных страниц ? :)


Название: Re: Тормоза QPlainTextEdit...
Отправлено: Пантер от Декабрь 25, 2008, 18:12
Всего файла. Это нужно отлавливать. Сложнее будет с выделением части текста, который на нескольких страницах находится.


Название: Re: Тормоза QPlainTextEdit...
Отправлено: panAlexey от Декабрь 25, 2008, 19:04
Что-то у вас там не так.
Провел эксперимент: Открыл креатор, открыл Qt3Support4.dll - 2247 Кб.
на вскидку открывался секунду.


Название: Re: Тормоза QPlainTextEdit...
Отправлено: ритт от Декабрь 25, 2008, 19:16
кстати, да...Hordi, какая версия Qt?


Название: Re: Тормоза QPlainTextEdit...
Отправлено: lit-uriy от Декабрь 25, 2008, 19:20
С QPlainTextEdit не работал. Но из любопытства проделал эксперимент как и panAlexey с использованием QTextEdit (%QTDIR%\examples\mainwindows\mdi):
QtGui4.dll - 8934 КиБ открывается ~17 сек
Qt3Support4.dll - 3313 КиБ ~ 4 сек

(Windows 2000 SP4, Qt 4.3.4)


Название: Re: Тормоза QPlainTextEdit...
Отправлено: ритт от Декабрь 25, 2008, 20:11
Юрий, Троллям данная ситуация уже давно была известна...шутки ради проделай тот же эксперимент на том же примере из снапшота 4.5 :)


Название: Re: Тормоза QPlainTextEdit...
Отправлено: lit-uriy от Декабрь 25, 2008, 20:30
Хм, 4.5 собирать лень, проверил на 4.4.3, несколько удивлен:
QtGui4.dll - 10180 КиБ открывается ~1,5 сек
Qt3Support4.dll - 3335 КиБ ~ 4 сек

т.е. Qt3Support4.dll тоже время, хотя весит меньше чем QtGui4.dll


Название: Re: Тормоза QPlainTextEdit...
Отправлено: Hordi от Декабрь 26, 2008, 12:20
Вопрос снят. Похоже эта пробема была из-за битой памяти... Ща попровил - стало работать нормально.


Название: Re: Тормоза QPlainTextEdit...
Отправлено: Racheengel от Январь 01, 2009, 13:56
Кстати в 4.4.3 есть такой баг с QTextEdit... Очень медленно работает.
А в 4.3 работает нормально...


Название: Re: Тормоза QPlainTextEdit...
Отправлено: Hordi от Январь 16, 2009, 13:30
Написал простенький проект - тормоза ужасные... Гружу файл размером 250К...


Название: Re: Тормоза QPlainTextEdit...
Отправлено: Dendy от Январь 16, 2009, 16:21
Написал простенький проект - тормоза ужасные... Гружу файл размером 250К...

Может потому что вы грузите не plain text, а бинарный блоб рамером в 250 кб?


Название: Re: Тормоза QPlainTextEdit...
Отправлено: Hordi от Январь 16, 2009, 17:20
Ну так и что если бинарный? Тормоза ведь происходят не на setPlainText, а на show и на scroll...


Название: Re: Тормоза QPlainTextEdit...
Отправлено: Hordi от Январь 16, 2009, 17:39
Попробовал на 4.5.0-beta1 - подтормаживает на скроллинге немного, но в общем терпимо...