Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: manarch от Март 10, 2010, 10:04



Название: Вывод форматированного текста в QPainter
Отправлено: manarch от Март 10, 2010, 10:04
Подскажите если знаете как вывести форматированный текст в QPainter? А то нужно выводит текст при перерисовке в зависимости от ситуации, или другим цветом или жирным или подчеркнутым а создавать ради этого QLabel нет смысла, тем более что количество надписей неограниченно.


Название: Re: Вывод форматированного текста в QPainter
Отправлено: voronElf от Март 10, 2010, 10:26
Играться с QFont:

вывод числа как штрихкода (выше подключаю из файла соответствующий шрифт через QFontDatabase), просто из моего кода вырвано
Код:
            
            str = font.family();
            font.setFamily(m_familyFontBarCode);
            font.setPixelSize(pc->pxFontSize3_1);
            painter->setFont(font);
            painter->drawText(rectPc, Qt::AlignRight | Qt::AlignVCenter, m_db->valStr(7));
            font.setFamily(str);


Название: Re: Вывод форматированного текста в QPainter
Отправлено: manarch от Март 10, 2010, 10:45
Вообще то это несколько не то. Форматированный текст - вообще это "Rich text". В моем случае я использую html теги для задания вида текста (<b></b>, <i></i> и т.д). Поэтому изменение шрифта тут не поможеш. В исходниках QLabel все завязанно нв внитреннем представлени. поэтому вытянуть оттуда не смог.


Название: Re: Вывод форматированного текста в QPainter
Отправлено: alexman от Март 10, 2010, 11:04
В зависимости от тега устанавливай соответствующий QFont.


Название: Re: Вывод форматированного текста в QPainter
Отправлено: voronElf от Март 10, 2010, 11:13
Цитировать
В зависимости от тега устанавливай соответствующий QFont.
получаем разбор html нада будет ручками делать. Подозреваю что нужный обработчи уже есть , готовый , используется в том же QLabel. Нужно только знать как его вызвать. Но это домыслы. Будем ждать, пока кто-нить знающий подскажет, заинтересовало ...


Название: Re: Вывод форматированного текста в QPainter
Отправлено: Akaiten от Март 10, 2010, 11:18
Можно сделать проще, см. QTextDocument::drawContents()


Название: Re: Вывод форматированного текста в QPainter
Отправлено: SABROG от Март 10, 2010, 12:17
Можно сделать проще, см. QTextDocument::drawContents()

Собственный Label (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).


Название: Re: Вывод форматированного текста в QPainter
Отправлено: manarch от Март 10, 2010, 14:03
Собственный Label (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).
Воооот... этот пример я и пытался безуспешно найти в течении дня. :-)  Спс Друг !
Только вот уже к сожалению не понадобился. Таки выдрать из исходников QLabel. Теперь и на setEnabled реагирует отрисовка текста.