QSqlTableModel的data函数开头是这样的:
QVariant QSqlTableModel::data(const QModelIndex &index, int role) const
{
Q_D(const QSqlTableModel);
if (!index.isValid() || (role != Qt::DisplayRole && role != Qt::EditRole))
return QVariant();
//。。。省略
}
这里,QSqlTableModel屏蔽了非Qt::DisplayRole与Qt::EditRole角色,为什么要这样做?
附带的第二个问题,我使用QTableView与QSqlTableModel从数据库读取表的数据,现在我想对表进行操作,增加一行记录的时候,单元格背景颜色需要改变,因此setData便不起作用了!
应该如何解决这个问题? 有没有不重载data的方法