在 QAbstractItemModel 中,可以使用 beginInsertRows、beginRemoveRows 等一些函数来插入和删除行。但是如何实现用另一个替换一个行项目呢?
问问题
1264 次
2 回答
1
如果我理解正确,您需要通知订阅视图有关指定模型索引的数据更改(一行被新替换,对于视图,这意味着数据已更改):
// 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);
于 2013-03-22T06:04:41.750 回答
0
如果要更改大量数据,则应执行以下操作:
beginResetModel();
// change data
endResetModel();
如果您只更改一行,则发出 dataChanged() 应该可以解决问题。
于 2013-03-22T11:24:19.587 回答