我有一个包含数据库中数据行的QTableView。但是,设置setAlternatingRowColors(true)只会替换具有数据的行颜色 - 表的其余部分只是白色,这不是您期望的行为(例如,在任何浏览器的书签列表中查找 - 空行具有交替色)。
有没有人知道Qt提供的表格视图的替代方案或替代方法?我已经摆弄了样式表和项目代表,结果相同。
答案 0 :(得分:4)
为什么不使用Qt QSS呢?它运作得很好。看看这里:http://www.qtcentre.org/threads/42211-QTableWidget-alternating-background-color?p=263046#post263046
myTable->setAlternatingRowColors(true);
myTable->setStyleSheet("alternate-background-color: yellow;background-color: red;");
答案 1 :(得分:2)
您可以像这样重新实现模型的data()
方法:
QVariant MyModel::data(const QModelIndex& index, int role) const
{
if(role == Qt::BackgroundColorRole)
return color;
...
}
应该可以使用setModelData()
对委托进行相同的操作。