设置QTABLEview 单元格背景色 为rgb(4,45,84)C++
时间: 2024-05-15 19:13:28 浏览: 64
Qt编程-QTableView冻结行或冻结列或冻结局部单元格
可以通过自定义 QStyledItemDelegate 的 paint() 函数来设置 QTableView 单元格的背景色。以下是一个示例代码:
```C++
class CustomItemDelegate : public QStyledItemDelegate {
public:
void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const {
QStyledItemDelegate::paint(painter, option, index);
if (option.state & QStyle::State_Selected) {
painter->fillRect(option.rect, QColor(4, 45, 84));
}
}
};
// 在代码中使用:
QTableView *tableView = new QTableView(parent);
tableView->setItemDelegate(new CustomItemDelegate);
```
在上面的代码中,我们继承了 QStyledItemDelegate 并重写了 paint() 函数。在该函数中,我们首先调用基类的 paint() 函数以绘制默认的单元格内容。然后,如果该单元格处于选中状态,我们使用 fillRect() 函数来填充背景色为 rgb(4,45,84)。最后,我们将我们自定义的 QStyledItemDelegate 实例设置为 QTableView 的 itemDelegate,这样就可以在 QTableView 中使用了。
阅读全文