在QAbstractItemModel中,某些函数(如beginInsertRows,beginRemoveRows)可用于插入和删除行。但是如何实现用另一个替换行项呢?
答案 0 :(得分:1)
如果我理解正确,您需要通知订阅视图有关指定模型索引的数据更改(一行替换为new,对于视图,这意味着数据已更改):
// let's the row is index that we want to invalidate
QVector<int> roles;
roles << Qt::DisplayRole;
emit dataChanged(index(row, 0), index(row, columnCount()-1), roles);
答案 1 :(得分:0)
如果你想改变很多数据,你应该这样做:
beginResetModel();
// change data
endResetModel();
如果只改变一行,发出dataChanged()就可以了。