Russian Qt Forum
Июнь 10, 2024, 22:21 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Формат кусочка текста (QTextEdit, QTextDocument)  (Прочитано 4381 раз)
.alex
Гость
« : Февраль 07, 2009, 22:34 »

Существует ли способ изменить формат кусочка текста в QTextEdit?

Или нужно в QTextDocument искать QTextBlock (а ещё их может быть несколько!)
В каждом QTextBlock получать QTextLayout и вызывать setAdditionalFormats ?

Может можно как то по-проще?
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Февраль 08, 2009, 11:16 »

Можно загружать отформатированный html.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
.alex
Гость
« Ответ #2 : Февраль 08, 2009, 12:26 »

Попробую.

А этот способ не работает:
Код:
Или нужно в QTextDocument искать QTextBlock (а ещё их может быть несколько!)
В каждом QTextBlock получать QTextLayout и вызывать setAdditionalFormats ?

setAdditionalFormats затирают формат.
А если получить у QTextLayout список FormatRanges, то там в некоторых случаях содержатся диапазоны форматов предыдущих данных (которые были до редактирования), а иногда вообще мусор.
Записан
.alex
Гость
« Ответ #3 : Февраль 08, 2009, 17:20 »

Так пока работает:
Код
C++ (Qt)
void reformatSpan( QTextDocument& doc, int pos, int length, const QTextCharFormat& format )
{
QTextCursor cursor(&doc);
cursor.setPosition(pos, QTextCursor::MoveAnchor);
cursor.setPosition(pos + length, QTextCursor::KeepAnchor);
cursor.mergeCharFormat(format);
}
« Последнее редактирование: Февраль 10, 2009, 03:06 от .alex » Записан
.alex
Гость
« Ответ #4 : Февраль 10, 2009, 03:03 »

Возникла проблема. Подход, представленный в предпоследнем сообщении работает неудовлетворительно. А точнее, ужасно тормозит.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.067 секунд. Запросов: 19.