Название: Ускорить отрисовку qtextedit Отправлено: finny от Сентябрь 07, 2011, 23:58 Проблема заключается в следующем: в окне QMainWindow границы изменяются при помощи сплиттера. В правом сплиттере расположен qtextedit, отображающий форматированную (html) текстовую информацию. При огромных объёмах текста (~250 кб) изменение границ сплиттера осуществляется крайне медленно в силу тормозов прорисовки qtextedit. Можно ли как-нибудь кардинально ускорить перерисовку qtextedit при изменениях его размеров частности. Может быть, можно как-нибудь использовать аппаратное успорение или opengl? HELP!!!
Название: Re: Ускорить отрисовку qtextedit Отправлено: GreatSnake от Сентябрь 08, 2011, 11:15 Проблема заключается в следующем: в окне QMainWindow границы изменяются при помощи сплиттера. В правом сплиттере расположен qtextedit, отображающий форматированную (html) текстовую информацию. При огромных объёмах текста (~250 кб) изменение границ сплиттера осуществляется крайне медленно в силу тормозов прорисовки qtextedit. Можно ли как-нибудь кардинально ускорить перерисовку qtextedit при изменениях его размеров частности. Может быть, можно как-нибудь использовать аппаратное успорение или opengl? HELP!!! Интересно, какое ускорение, кроме мощного CPU, ускорит пере-форматирование?Вообще-то при таких ситуациях используют таймеры. Перегрузите QTextEdit::resizeEvent() и в нём заряжайте таймер, после отработки которого уже вызывайте базовый resizeEvent(). Название: Re: Ускорить отрисовку qtextedit Отправлено: finny от Сентябрь 09, 2011, 18:26 Можно более подробно объяснить? И каким образом это коррелируется с paint event? Если несложно то по шагам и даже можно какой-нибудь псевдокод. Буду очень признателен.
Название: Re: Ускорить отрисовку qtextedit Отправлено: GreatSnake от Сентябрь 09, 2011, 22:46 И каким образом это коррелируется с paint event? Никаким, т.к. вся проблема не в отрисовке, а в форматировании.Цитировать Если несложно то по шагам и даже можно какой-нибудь псевдокод. Как-то так:Код
Название: Re: Ускорить отрисовку qtextedit Отправлено: finny от Сентябрь 10, 2011, 09:16 И последний вопрос: обязательно ли для этого делать наследник класса или можно перехватить resizeEvent для qtextedit в eventFilter?
Название: Re: Ускорить отрисовку qtextedit Отправлено: GreatSnake от Сентябрь 10, 2011, 10:52 И последний вопрос: обязательно ли для этого делать наследник класса или можно перехватить resizeEvent для qtextedit в eventFilter? Это уж как хочется. Только с фильтром, имхо, по-сложнее будет да и не так красиво :)Название: Re: Ускорить отрисовку qtextedit Отправлено: finny от Сентябрь 10, 2011, 11:54 Код: void delayed_resize() Вот откуда берётся size()? Название: Re: Ускорить отрисовку qtextedit Отправлено: GreatSnake от Сентябрь 10, 2011, 12:05 Вот откуда берётся size()? Код
Название: Re: Ускорить отрисовку qtextedit Отправлено: finny от Сентябрь 10, 2011, 12:18 Я так и думал. А вот какой интервал для таймера будет оптимальным?
Кстати заметил ещё одну вещь: чем больше значение вертикального скролла(от 0 до 100), тем медленнее происходит update интерфейса. То есть если ползунок наверху то всё летает, а если внизу то значительно медленнее Название: Re: Ускорить отрисовку qtextedit Отправлено: _OLEGator_ от Октябрь 05, 2011, 15:20 как вариант, можно попробовать использовать QWebView вместо QTextEdit, если не требуется редактирование.
Должно работать быстрее. Название: Re: Ускорить отрисовку qtextedit Отправлено: artiom_kh от Октябрь 11, 2011, 10:09 как вариант, можно попробовать использовать QWebView вместо QTextEdit, если не требуется редактирование. вообщем-то да, там движок от Google Chrome, правда не последних версийДолжно работать быстрее. Название: Re: Ускорить отрисовку qtextedit Отправлено: Авварон от Октябрь 11, 2011, 10:52 http://doc.qt.nokia.com/latest/qsplitter.html#opaqueResize-prop
Кажется оно, непонятно почему написано что вкл по дефолту. |