如何在基于 QMap 的 QAbstractListModel 中找到特定行的索引?
How to find the index of a specific row in QMap based QAbstractListModel?
我有一个 class 派生自 QAbstractListModel
基于 QMap<QUuid, CustomObject>
我在 qml 中用 ListView
可视化。在我申请 运行 期间的某个时候,我根据 QUuid
从这张地图中删除了一些项目。当我进行删除操作时,我想调用 beginRemoveRows
以便通知 ListView
它的内容正在更改并且需要重新绘制自身。如何找到 beginRemoveRows
的正确索引?
实际上使用 QMap
完全没问题。您只需要找到正确的索引 beginIndexRow
、beginRemoveRows
等。例如,找到 beginIndexRow
的索引看起来像这样:
int index = std::distance(myQMap.begin(), myQMap.lowerBound(id));
beginInsertRows(QModelIndex(), index, index);
myQMap[id] = myCustomObject;
endInsertRows();
我有一个 class 派生自 QAbstractListModel
基于 QMap<QUuid, CustomObject>
我在 qml 中用 ListView
可视化。在我申请 运行 期间的某个时候,我根据 QUuid
从这张地图中删除了一些项目。当我进行删除操作时,我想调用 beginRemoveRows
以便通知 ListView
它的内容正在更改并且需要重新绘制自身。如何找到 beginRemoveRows
的正确索引?
实际上使用 QMap
完全没问题。您只需要找到正确的索引 beginIndexRow
、beginRemoveRows
等。例如,找到 beginIndexRow
的索引看起来像这样:
int index = std::distance(myQMap.begin(), myQMap.lowerBound(id));
beginInsertRows(QModelIndex(), index, index);
myQMap[id] = myCustomObject;
endInsertRows();