我知道论坛上有很多关于这个主题的讨论,但我找不到解决这个问题的方法。
我有一个使用模型的QTableView。我需要能够通过模型更改某些特定行的背景颜色,更准确地说是来自data
函数。
QVariant CCustomModel::data(const QModelIndex &index, int role) const
{
if (role == Qt::DisplayRole)
{
switch (index.column())
{
case colName: return QVariant(QString::number(1));
case colAdress: return QVariant(QString::number(2));
case colGender: return QVariant(QString::number(3));
case colTelephone: return QVariant(QString::number(4));
default:
return QVariant();
}
}
if(role == Qt::BackgroundColorRole) //also tried Qt::BackgroundRole and Qt::ForegroundRole
{
return QVariant(QColor(Qt::red));
}
return QVariant();
}
这很简单,不起作用。显示数字但背景颜色仍然是基本颜色。这里有什么可能的解决方案吗?
答案 0 :(得分:1)
试试这个:
if(role == Qt::BackgroundRole)
{
return QBrush(QColor(Qt::red));
}