txt manejo leer archivos archivo c++ qt text richtext

c++ - manejo - ¿Cómo crear una etiqueta de texto roja y audaz en Qt?



manejo de archivos en qt (4)

Quiero escribir una sola línea roja en negrita en mi aplicación usando Qt.

Por lo que yo entiendo, crearía QLabel, establecería textFormat en texto enriquecido y le daría una cadena de texto enriquecido para mostrar:

QLabel *warning = new QLabel; warning->setTextFormat(Qt::RichText); warning->setText("{//rtf1//ansi//ansicpg1252 {//fonttbl//f0//fswiss//fcharset0 Helvetica;} {//colortbl;//red255//green0//blue0;} //f0 //cf0 this is bold red text}");

Probé esta cadena de texto enriquecido en un editor de texto enriquecido y se muestra bien.

Pero Qt muestra toda la cadena con todas las llaves, palabras clave y barras invertidas en lugar de "esto es texto rojo en negrita". ¿Qué estoy haciendo mal?

Gracias por tu ayuda.


Intente usar el formato HTML: <b><font... etc </b> .

Qt Designer lo hace así: <span style=" font-size:8pt; font-weight:600; color:#aa0000;">TextLabel</span>


Puede usar Qt StyleSheets y establecer la propiedad styleSheet de QLabel

warning->setStyleSheet("font-weight: bold; color: red");

Qt es compatible con la mayoría de los estilos CSS en sus clases derivadas de QWidget . No necesita establecer el formato de texto en Qt::RichText para que esto funcione.



También puede hacerlo mediante programación utilizando la función settext . Algo como esto:

QString labelText = "<P><b><i><FONT COLOR=''#ff0000'' FONT SIZE = 4>"; labelText .append(Text what u want to display); labelText .append("</i></b></P></br>"); QLabel label->setText(labelText);

Puedes hacerlo en una sola línea también.