如何在基于 QMap 的 QAbstractListModel 中找到特定行的索引



我有一个基于QMap<QUuid, CustomObject>QAbstractListModel派生的类,我在 qml 中使用ListView可视化该类。在我的应用程序运行期间的某个时候,我根据它的QUuid从此地图中删除了一些项目。当我进行删除时,我想打电话给beginRemoveRows,以便ListView收到通知,它的内容正在更改并且需要重新绘制。如何找到适合beginRemoveRows的索引?

实际上使用QMap是完全可以的。您只需要找出正确的索引beginIndexRowbeginRemoveRows等。例如,查找beginIndexRow的索引如下所示:

int index = std::distance(myQMap.begin(), myQMap.lowerBound(id));
beginInsertRows(QModelIndex(), index, index);
myQMap[id] = myCustomObject;
endInsertRows();

相关内容

  • 没有找到相关文章

最新更新