改变qt中的细胞背景颜色

时间:2010-05-10 20:23:10

标签: qt qt4 pyqt pyqt4 qtablewidget

我是pyqt的新手,我还面临一些新手问题:D
我有一个QTableWidget,它是QChoice控件上委托的项目(希望我说对了) 每当用户更改选择控件选择时,我需要更改单元格背景颜色
简要说明:如何更改表格小部件中的单元格背景颜色?
我使用pyqt4和python 2.6
提前谢谢

6 个答案:

答案 0 :(得分:8)

我使用过这样的东西:

brush = QtGui.QBrush(QtGui.QColor(255, 0, 0))
brush.setStyle(QtCore.Qt.SolidPattern)
item.setBackground(brush)

其中item是QTableWidgetItem对象

答案 1 :(得分:4)

使用

QTableWidgetItem QTableWidget.item(row, column)

QTableWidgetItem setData(role, data)

Qt.BackgroundRole

如下:

table.item(0, 0).setData(Qt.BackgroundRole, color).

阅读Qt Model / View中使用的角色机制。

答案 2 :(得分:2)

如果你使用QTableView,请使用:

model.setData(model.index(0, 0), QVariant(QBrush(Qt::red)), Qt::BackgroundRole);

答案 3 :(得分:1)

以下是一些有用的代码行。对不起冗余,我正试图获得一些声誉。

QStandardItemModel* model = new QStandardItemModel(numRows, numColumns);
QStringList headers;
headers.append("Date");
model->setHorizontalHeaderLabels(headers);
QStandardItem* item = new QStandardItem(text);
item->setData(Qt::AlignCenter, Qt::TextAlignmentRole);
item->setData(QVariant(QBrush(Qt::green)), Qt::BackgroundRole);
model->setItem(row, column, item);

或简单地说:

item->setBackground(Qt::green);

答案 4 :(得分:0)

嘿,您为表格小部件设置了委托方法。在委托的paint事件中你处理变色技术.. 看看这个example,这里他们已经完成了自定义选择颜色。处理项目单元格绘制的方式相同

答案 5 :(得分:0)

对于C++方式的补充,如果你想绘制不同于Qt::red等的自定义颜色,你可以这样做: ui->tableWidget->item(i, j)->setBackground(QColor(152,234,112));