How change the background color for a blank cell in QTableWidget

spy8888 picture spy8888 · Mar 25, 2013 · Viewed 35.7k times · Source

If a cell have some data, using

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

to change the background color will work, but if a cell is blank it will fail.

Answer

Daniel Hedberg picture Daniel Hedberg · Mar 25, 2013

You cannot set the background color of a cell unless it contains a QTableWidgetItem (as the background color is a property of the item).

So you need to populate your QTableWidget with empty items first. In your example, create the item before you attempt to set the background color.

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

Please also note that you should use setBackground instead of setBackgroundColor as the latter is deprecated.