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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Проблемы при рисовании html'я делегатом  (Прочитано 3090 раз)
qt_user
Гость
« : Ноябрь 27, 2011, 16:08 »

Добрый вечер,
Рисую делегатом QStaticText, выбор пал на него именно потому что надо отрисовать rich текст, другого просто способа
не знаю.

Проблема в том что форматированный текст рисуется не так как хотелось, а именно переходит по пробелу на
новую строчку, хотя свободного места еще довольно много, например:

Код
C++ (Qt)
void Delegate::paint( QPainter *painter,
                       const QStyleOptionViewItem &option, const QModelIndex &index ) const
{
   QString str("This isnotVeryLongTextLine");
   QStaticText text( QString( "<b>Id:</b> Text<br> <b>Name</b>: %1"
                     "<br><font color=\"#aaa7aa\">Status</font>" )
                       .arg( str ));
 
   qDebug() << "text width: " << text.size().width();
 
   text.setTextFormat(Qt::RichText);
 
   painter->drawStaticText( option.rect.topLeft(), text );
}
 

В итоге мы получаем:
Код:
Id: Text
Name: This
isnotVeryLongTextLine
Status

Кто знает как это исправить или другой способ нарисовать rich текст

Вот внизу приложил компилябеляный пример
Записан
zenden
Гость
« Ответ #1 : Ноябрь 27, 2011, 16:28 »

Попробуйте так:
Код
C++ (Qt)
text.setTextWidth( option.rect.width());

про другие способы вывода форматированного текста: http://wiki.linuxformat.ru/index.php/LXF104:Qt4#.D0.9F.D0.B8.D1.88.D0.B5.D0.BC_.D0.BA.D1.80.D0.B0.D1.81.D0.B8.D0.B2.D0.BE
Записан
_OLEGator_
Гость
« Ответ #2 : Ноябрь 28, 2011, 09:10 »

Возможно, это:

Код
C++ (Qt)
void QStaticText::setTextOption ( const QTextOption & textOption )
void QTextOption::setWrapMode ( WrapMode mode )
Записан
qt_user
Гость
« Ответ #3 : Ноябрь 28, 2011, 09:13 »

Спасибо, это помогло:
Код:
text.setTextWidth( option.rect.width());
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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