QT рисовать красочный текст - PullRequest
5 голосов
/ 10 февраля 2012

Я использую QPainter для drawText на QPrinter; Однако есть проблема. Я надеюсь, что смогу нарисовать красочный текст. Например, рисунок «Hello World», где «H» зеленый, «ello» желтый, «World» синий. В настоящее время я вызываю drawText 3 раза и использую другой QPen для изменения цвета. Более того, я должен рассчитать позицию, где рисовать в 3 раза. Наконец, я не смог выровнять строку в QRect, потому что я не рисую полное предложение. Есть ли способ решить это простым способом? Любая подсказка приветствуется! Спасибо!

1 Ответ

4 голосов
/ 10 февраля 2012

Вы можете сделать это, написав html прямо в текстовую строку, включая спецификации CSS для цвета.

HTML в тексте виджета

CSS внутри html Используйте html style тег для доступа к этому.

Редактировать: Чтобы получить это на QPaintDevice, используйте QPainter::drawStaticText(). Он работает так же, как drawText, но по умолчанию читает расширенный текст. Вам нужно #include <QStaticText>, чтобы использовать его.

...