Seite 1 von 1

[gelöst] Farbe eines QTableWidgetItem ändern

Verfasst: 10. November 2012 00:52
von qtNiko
hi,

ich möchte die Hintergrundfarbe eines QTableWidgetItem ändern.
Bei QLineEdit geht dies recht einfach mit setStyleSheet(). Das QTableWidgetItem kennt aber kein setStyleSheet().

Nun gibt es ein setBackground(), das ich folgendermaßen verwenden wollte:

Code: Alles auswählen

const QBrush *itembrush = new QBrush(Qt::SolidPattern, Qt::BrushStyle (Qt::lightGray));
table_bmy->item(0,0)->setBackground(itembrush);
Der Compiler sagt dazu: "no matching function for call to QTableWidgetItem::setBackground(..)".

Laut QtAssistant gibt es ein setBackground() für QTableWidgetItem.
Irgendwie wende ich diese function jedoch falsch an. Wie muss es richtig sein?
-------------

Da war ich etwas voreilig mit meiner Frage.
setBackground() braucht eine Referenz als Argument, nicht einen Zeiger!
Dieser feine Unterschied ist zu erreichen mit

Code: Alles auswählen

const QBrush *itembrush = new QBrush(Qt::SolidPattern, Qt::BrushStyle (Qt::lightGray));
const QBrush &ref_itembrush = *itembrush;
table_bmy->item(0,0)->setBackground(ref_itembrush);
:D

Re: [gelöst] Farbe eines QTableWidgetItem ändern

Verfasst: 10. November 2012 09:33
von Christian81
Und schon haben wir mal wieder ein Memory-Leak...

Code: Alles auswählen

QBrush itembrush(Qt::SolidPattern, Qt::BrushStyle (Qt::lightGray));
table_bmy->item(0,0)->setBackground(itembrush);
und schon haben wir keins mehr.

Re: [gelöst] Farbe eines QTableWidgetItem ändern

Verfasst: 10. November 2012 15:35
von qtNiko
hmm, guter Tipp :wink:
Und einfacher ist es außerdem!