2012-02-10 28 views
5

Uso QPainter para dibujar texto en QPrinter; sin embargo, hay un problema. Espero poder dibujar un texto colorido. Por ejemplo, dibujando "Hello World" donde la "H" es verde, "ello" es amarillo, "World" es azul.
Por el momento, llamo a drawText 3 veces y uso QPen diferente para cambiar el color. Además, debo calcular la posición donde dibujar 3 veces. Finalmente, no pude alinear una cadena en un QRect porque no dibujo una oración completa. ¿Hay alguna manera de resolverlo de una manera simple? ¡Cualquier pista es apreciada! ¡Gracias!qt dibujar texto colorido

Respuesta

4

Puede hacerlo escribiendo html directamente en la cadena de texto, incluidas las especificaciones de CSS para el color.

Html in widget text

CSS within the html Usar la etiqueta html style Para acceder a esta.

Editar: Para obtener esto en un QPaintDevice, use QPainter::drawStaticText(). Funciona igual que drawText, pero lee texto enriquecido de forma predeterminada. Necesitará #include <QStaticText> para usarlo.

+0

Saco algo de QPrinter porque quiero hacer un archivo pdf. ¿QPainter podría usar texto enriquecido? – Arton

+0

@ Anton Vea mi edición, he confirmado que esto funciona en mi propio código. –

+0

Funciona bien. ¡¡Muchas gracias!! – Arton