Delegate 2 - HtmlDelegate, пост, придающий смысл теме Delegate ;) |
Здравствуйте, гость ( Вход | Регистрация )
Delegate 2 - HtmlDelegate, пост, придающий смысл теме Delegate ;) |
jim1406 |
10.4.2009, 11:05
Сообщение
#1
|
Студент Группа: Участник Сообщений: 27 Регистрация: 17.3.2009 Пользователь №: 618 Спасибо сказали: 0 раз(а) Репутация: 0 |
Доброго времени суток!..
Задача - отображать в таблице и/или списке форматированный текст (переносы строки, различные шрифты и пр. смотри, как вариант, firefox). Делать виджета-наследника не очень желательно. Хочется использовать делегаты. Подскажите, с какого боку лучше подойти? Отрисовывать итемы в виде различных контролов я научился (в прошлой теме Delegate ). Предполагал это и использовать, но что-то застопорился, не найдя подходящего контрола QStyle::CE_ , умеющего отображать, скажем, html. |
|
|
Litkevich Yuriy |
10.4.2009, 11:09
Сообщение
#2
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
jim1406 |
13.4.2009, 5:46
Сообщение
#3
|
Студент Группа: Участник Сообщений: 27 Регистрация: 17.3.2009 Пользователь №: 618 Спасибо сказали: 0 раз(а) Репутация: 0 |
|
|
|
igor_bogomolov |
14.4.2009, 0:07
Сообщение
#4
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
jim1406, с тебя пиво
Шучу. Интересную ты задачку задал, если честно не сразу справился. Но было очень интерестно повозиться, т.ч. спасибо. В архиве готовый делегат, с тестовым примером. Обрати внимание на параметр Qt::Alignment align, который передается в конструкторе, он позволяет ориентировать текст в ячейке. Раскрывающийся текст
Прикрепленные файлы
|
|
|
jim1406 |
14.4.2009, 4:20
Сообщение
#5
|
Студент Группа: Участник Сообщений: 27 Регистрация: 17.3.2009 Пользователь №: 618 Спасибо сказали: 0 раз(а) Репутация: 0 |
jim1406, с тебя пиво Шучу. Интересную ты задачку задал, если честно не сразу справился. Но было очень интерестно повозиться, т.ч. спасибо. В архиве готовый делегат, с тестовым примером. Обрати внимание на параметр Qt::Alignment align, который передается в конструкторе, он позволяет ориентировать текст в ячейке. Спасибо!!! Сейчас буду разбираться в деталях... Насчет использования QTextDocument я уже допетрил, но, насколько я понял, ты решил то, что не получалось у меня - нормальное отображение итема.... Еще раз |
|
|
igor_bogomolov |
14.4.2009, 8:24
Сообщение
#6
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
Насчет использования QTextDocument я уже допетрил А я вот долго допетрить не мог. Пока исходники QLabel не перерыл и не узнал, что у QTextDocument drawContents есть. Идея нормального отображения тоже частично у QLabel подсмотрена. А перед этим, не поверите, пытался сам все отрисовать через тот же QTextDocument, QTextCursor и QFontMetrics. Видилибы вы этого уродца
|
|
|
SABROG |
14.4.2009, 11:12
Сообщение
#7
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
Это ты таким образом пытаешься скорость отрисовки увеличить? |
|
|
igor_bogomolov |
14.4.2009, 11:36
Сообщение
#8
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
Это ты таким образом пытаешься скорость отрисовки увеличить? Логика была сначала несколько подругому построена. А это остаточные рудименты. Я как результата достиг, на этом и успокоился. Надо было конечно ради приличая подчистить код, а то вот теперь и обо мне плохо думают Для скорости уж не сильно критично. Только глаз немного мазолит. А человеку помог, да и интерес смотрю есть, восемь закачек уже |
|
|
jim1406 |
14.4.2009, 11:42
Сообщение
#9
|
Студент Группа: Участник Сообщений: 27 Регистрация: 17.3.2009 Пользователь №: 618 Спасибо сказали: 0 раз(а) Репутация: 0 |
Не могу сообразить, как в QComboBox нормально такие итемы отрисовать . Там такого ресайза, как в таблице нету...
Изначально идея была в выпадающем списке отрисовывать сложно-форматированный текст... |
|
|
SABROG |
14.4.2009, 20:47
Сообщение
#10
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
Хочу напомнить о существовании одной статьи в 24 выпуске Qt Quarterly: http://doc.trolltech.com/qq/qq24-textlayouts.html
(она есть и на этом сайте, но тут какой-то косяк с форматированием кода - http://www.crossplatform.ru/?q=node/544) Имхо QTextLayout полегковеснее будет, чем весь QTextDocument. Это конечно, если людям понадобится только отображение форматированного текста. Или вообще использовать QTextLine, если надо отрисовать всего-лишь одну строку:
Сообщение отредактировал SABROG - 14.4.2009, 21:50 |
|
|
Текстовая версия | Сейчас: 28.11.2024, 21:36 |