crossplatform.ru

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

2 страниц V  < 1 2  
Ответить в данную темуНачать новую тему
> Чат с графическим отображением
kwisp
  опции профиля:
сообщение 1.3.2009, 17:12
Сообщение #11


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

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




Репутация:   23  


Цитата(lucifer_vrn @ 1.3.2009, 16:52) *
отрисовать всю ленту не проблема. проблема возникает при перерисовке сообщений, когда допустим меняется ширина виджета, текст тогда должен переноситься на новую строку во многих постах, что приводит к лавиному пересчету координат и перерисове всего...


думаю это можно разрулить. надо подумать как.
почитай о системе рисования в Qt.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
trdm
  опции профиля:
сообщение 1.3.2009, 19:33
Сообщение #12


Дмитрий Трошин
****

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

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




Репутация:   6  


Цитата(lucifer_vrn @ 1.3.2009, 16:52) *
отрисовать всю ленту не проблема. проблема возникает при перерисовке сообщений, когда допустим меняется ширина виджета, текст тогда должен переноситься на новую строку во многих постах, что приводит к лавиному пересчету координат и перерисове всего...

если ты так дотошно выделил проблему, то и решить запросто сможешь :)
У меня самого такая проблема: меняю ширину столбца в репорте: начинается каскадный пересчет..
кстати перерисовывать всю ленту не надо.
Запоминай первое видимое сообщение и его офсет вверх (за линию видимого).
потом: painter.setClipRect(m_rectDataRegion) << устанавливает область рисования, все, что все этой области рисоваться не будет.
а потом рисуй хоть так:
painter.drawRect(QRect(-10,-10,50,30));
паинтер сам прорисует только то, что нужно, а остальное отсечет...
пересчет можно в фоне делать, если у тебя текст хренится в структурах, можно попробовать передать их потоку, которые посчитает переносы и вернет разницу между теми что были и теми что есть. На эту разницу скорректируешь скрол.
ПС. вообще очень интересная задачка...

Сообщение отредактировал trdm - 1.3.2009, 19:39
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
lucifer_vrn
  опции профиля:
сообщение 2.3.2009, 0:16
Сообщение #13


Студент
*

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

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




Репутация:   0  


меня осинила идея!
а почему бы не использовать html.
рамку вполне можно всунуть как бекграунд ячейки таблицы... да и вообще как то в голове крутиться как применить для решенеия такой проблемы хтмл... но никак не получается.
пробовал в QTextCharFormat.setBackground(QBrush(QPixmap())) и всякие другие комбинации со всяким разным, че-то никак не пойму как можно если вообще можно задать бэкграунд у какой-то части...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
trdm
  опции профиля:
сообщение 2.3.2009, 2:19
Сообщение #14


Дмитрий Трошин
****

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

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




Репутация:   6  


Цитата(lucifer_vrn @ 2.3.2009, 0:16) *
меня осинила идея!
скажи спасибо, что не диарея...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Константин
  опции профиля:
сообщение 2.3.2009, 2:23
Сообщение #15


Студент
*

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

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




Репутация:   1  


http://doc.trolltech.com/qq/qq24-textlayouts.html
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 23.12.2024, 5:04