[gelöst] QTableWidgetItem-Text mit unterschiedlichen Farben

Alles rund um die Programmierung mit Qt
Antworten
matthiasw
Beiträge: 20
Registriert: 24. April 2014 13:50

[gelöst] QTableWidgetItem-Text mit unterschiedlichen Farben

Beitrag 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
Zuletzt geändert von matthiasw am 27. November 2014 08:15, insgesamt 1-mal geändert.
MichaelS
Beiträge: 240
Registriert: 27. Dezember 2005 12:49

Re: QTableWidgetItem-Text mit unterschiedlichen Farben

Beitrag 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
matthiasw
Beiträge: 20
Registriert: 24. April 2014 13:50

Re: QTableWidgetItem-Text mit unterschiedlichen Farben

Beitrag 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
Antworten