[gelöst] Farbe eines QTableWidgetItem ändern

Alles rund um die Programmierung mit Qt
Antworten
qtNiko
Beiträge: 216
Registriert: 6. April 2007 21:26
Wohnort: München

[gelöst] Farbe eines QTableWidgetItem ändern

Beitrag 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
Gruß von qtNiko

Core i5 760, GT 240, Suse Linux11.3, Eclipse-CDT-Helios, QT4.4, QT-Integration
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

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

Beitrag 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.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
qtNiko
Beiträge: 216
Registriert: 6. April 2007 21:26
Wohnort: München

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

Beitrag von qtNiko »

hmm, guter Tipp :wink:
Und einfacher ist es außerdem!
Gruß von qtNiko

Core i5 760, GT 240, Suse Linux11.3, Eclipse-CDT-Helios, QT4.4, QT-Integration
Antworten