2013-03-25 10 views
16

die Hintergrundfarbe ändern, wenn eine Zelle einige Daten hat,Wie für eine leere Zelle in QTableWidget

tableWidget->item(8,0)->setBackgroundColor(Qt::red); 

die Hintergrundfarbe arbeiten zu ändern verwenden, aber wenn eine Zelle versagen wird es leer ist.

Antwort

22

Sie können die Hintergrundfarbe einer Zelle nur festlegen, wenn sie QTableWidgetItem enthält (da die Hintergrundfarbe eine Eigenschaft des Elements ist).

So müssen Sie zuerst Ihre QTableWidget mit leeren Elementen bevölkern. In Ihrem Beispiel erstellen Sie das Objekt, bevor Sie versuchen, die Hintergrundfarbe festzulegen.

tableWidget->setItem(8, 0, new QTableWidgetItem); 
tableWidget->item(8, 0)->setBackground(Qt::red); 

Bitte beachten Sie auch, dass Sie setBackground statt setBackgroundColor da diese veraltet verwendet werden soll.

+0

Ein ähnliches Problem für mich behoben. Irgendeine Idee, warum das funktioniert und '-> background.setColor()' nicht? –

Verwandte Themen