0

QAbstractListModel我有一个基于QMap<QUuid, CustomObject>ListView在 qml 中可视化的类的派生类。在我的应用程序运行期间的某个时间,我会根​​据它的QUuid. 当我进行删除时,我想调用它,beginRemoveRows以便ListView通知它的内容正在更改并且需要重新绘制自身。如何找到正确的索引beginRemoveRows

4

1 回答 1

3

实际上使用QMap完全没问题。您只需要找出正确的索引beginIndexRowbeginRemoveRows。例如,查找索引beginIndexRow看起来像这样:

int index = std::distance(myQMap.begin(), myQMap.lowerBound(id));
beginInsertRows(QModelIndex(), index, index);
myQMap[id] = myCustomObject;
endInsertRows();
于 2016-03-12T03:05:59.790 回答