Seite 1 von 1

[gelöst] QTableWidgetItem-Text mit unterschiedlichen Farben

Verfasst: 14. November 2014 14:05
von matthiasw
Hallo,

ich habe folgendes Problem: Der Text eines QTableWidgetItem soll unterschiedlich farbig dargestellt werden. Als Beispiel: "Variable xy - Sollwert ## - Istwert ##"
Es geht nicht, den Text in unterschiedliche Items zu zerlegen und deren Textfarbe zu ändern, da es ein Item bleiben muss.

Ich hätte vermutet, das man, wie z.B. bei "QMessageBox::about()" mit HTML-Tags arbeiten kann, aber die Tags werden nicht als solche interpretiert. Beispielsweise wird bei "Variable <b>xy</b>" auch das <b>...</b> Tag für fett nicht erkannt. Hat jemand eine Idee, wie dieses Problem gelöst werden kann?

Viele Grüße

Matthias

Re: QTableWidgetItem-Text mit unterschiedlichen Farben

Verfasst: 17. November 2014 14:21
von MichaelS
Hallo,

da ein QLabel HTML-Code darstellen kann, würde ich mal folgendes versuchen:

Code: Alles auswählen

 int zeile = 0;
 int spalte = 0;

 QLabel *label = new QLabel;
 label->setText("<b>fetter</b> Text");
 label->setTextFormat(Qt::RichText);

 myTableWidget->setCellWidget( zeile, spalte,  label );
Getestet habe ich es aber nicht!

Gruß Michael

Re: QTableWidgetItem-Text mit unterschiedlichen Farben

Verfasst: 17. November 2014 16:20
von matthiasw
Das ist genau das, was ich suchte. Danke :) Ich wusste nicht, dass ich auch andere Widgets außer QTableWidgetItem der Tabelle zuweisen kann.

Zur Info mein Code für die rote Schrift:

Code: Alles auswählen

QLabel *textItem = new QLabel();
textItem->setText(QString("<span style=\"color:red\">%1</span>  -  IST: <span style=\"color:red\">%2</span>  SOLL: <span style=\"color:red\">%3</span>")
                            .arg(variable,ist,soll);
textItem->setTextFormat(Qt::RichText);
ui->tabLogger->setCellWidget(row,col,textItem);
Viele Grüße

Matthias