Чат с графическим отображением |
Здравствуйте, гость ( Вход | Регистрация )
Чат с графическим отображением |
kwisp |
1.3.2009, 17:12
Сообщение
#11
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
отрисовать всю ленту не проблема. проблема возникает при перерисовке сообщений, когда допустим меняется ширина виджета, текст тогда должен переноситься на новую строку во многих постах, что приводит к лавиному пересчету координат и перерисове всего... думаю это можно разрулить. надо подумать как. почитай о системе рисования в Qt. |
|
|
trdm |
1.3.2009, 19:33
Сообщение
#12
|
Дмитрий Трошин Группа: Участник Сообщений: 575 Регистрация: 12.1.2008 Пользователь №: 68 Спасибо сказали: 21 раз(а) Репутация: 6 |
отрисовать всю ленту не проблема. проблема возникает при перерисовке сообщений, когда допустим меняется ширина виджета, текст тогда должен переноситься на новую строку во многих постах, что приводит к лавиному пересчету координат и перерисове всего... если ты так дотошно выделил проблему, то и решить запросто сможешь У меня самого такая проблема: меняю ширину столбца в репорте: начинается каскадный пересчет.. кстати перерисовывать всю ленту не надо. Запоминай первое видимое сообщение и его офсет вверх (за линию видимого). потом: 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 |
|
|
|
Константин |
2.3.2009, 2:23
Сообщение
#15
|
Студент Группа: Участник Сообщений: 69 Регистрация: 9.2.2009 Пользователь №: 539 Спасибо сказали: 15 раз(а) Репутация: 1 |
|
|
|
Текстовая версия | Сейчас: 23.12.2024, 5:04 |