我过去扩展了 QSqlTableModel,但目前我被卡住了(毕竟还是一个初学者):
QVariant MyChild::data(const QModelIndex &index, int role) const
{
// Check if (soft)deleted / cancelled
if(index.column() == 3)
{
if(QSqlTableModel::data(index, Qt::DisplayRole).toString() == "1")
{
if(role == Qt::DisplayRole)
{
return "Deleted";
}
if(role == Qt::BackgroundColorRole)
{
return QVariant(QColor(Qt::yellow));
}
// QSqlTableModel::setData(index, QVariant(QColor(Qt::red)), Qt::BackgroundColorRole);
// setData(index, QColor(Qt::red), Qt::BackgroundColorRole);
}
}
return QSqlTableModel::data(index, role);
}
现在这很适合它的功能。它将表格中的字段着色为黄色,但我希望整行都被着色。所以你一眼就能看出这条记录已经被(软)删除了。
如您所见,我已经尝试调用 setData,但无济于事。(当然,我会为这一行中的每个索引执行此操作,但由于它一开始不起作用,所以我停在那里。)
对此有什么想法吗?我在网上搜索了很多,但似乎找不到为整行着色的方法。