如何在QAbstractItemModel中替换一行?

时间:2013-03-22 04:34:59

标签: qt model-view

在QAbstractItemModel中,某些函数(如beginInsertRows,beginRemoveRows)可用于插入和删除行。但是如何实现用另一个替换行项呢?

2 个答案:

答案 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()就可以了。