2

在 QAbstractItemModel 中,可以使用 beginInsertRows、beginRemoveRows 等一些函数来插入和删除行。但是如何实现用另一个替换一个行项目呢?

4

2 回答 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 回答