Qt中tableview根据行号改变背景颜色
时间: 2023-07-10 12:43:04 浏览: 107
在Qt的TableView中,可以通过设置自定义的代理类来实现根据行号改变背景颜色的效果。以下是一个示例代码:
```cpp
class MyDelegate : public QStyledItemDelegate
{
public:
MyDelegate(QObject *parent = nullptr) : QStyledItemDelegate(parent) {}
void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
// 调用基类的paint方法绘制表格项
QStyledItemDelegate::paint(painter, option, index);
// 如果是奇数行,设置背景颜色为灰色
if (index.row() % 2 == 1) {
painter->fillRect(option.rect, Qt::lightGray);
}
}
};
// 在TableView中设置代理类
MyDelegate *delegate = new MyDelegate(this);
ui->tableView->setItemDelegate(delegate);
```
在上述代码中,我们自定义了一个代理类`MyDelegate`,在其`paint`方法中判断当前行号是否为奇数行,如果是则设置背景颜色为灰色。最后将该代理类设置到TableView中即可。
阅读全文