0

我有某种数据存储在 std::map 中,需要在 QTableView 中显示。所以我有来自 QAbstractItemModel 的模型类,但我遇到了一个问题:

“数据”方法为我提供了一个 QModelIndex,其中包含数据条目的预期行号。但是由于我使用的是地图而不是矢量,因此我无法使用 row 参数随机访问它。所以我的想法是覆盖生成 QModelIndex 对象并包含每个对象的适当哈希键的“索引”方法。但这并没有让它变得更容易,因为我需要再次通过行号获取哈希键。当然,我可以遍历从 begin() 到 end() 的整个地图以找到第 n 行/元素,但这将是非常低效的。

您对如何在 QTableView 中适当地显示 std::map 有什么建议吗?

struct Data {
    ...
};

std::map<int, Data> dataMapping;

QModelIndex index ( int row, int column, const QModelIndex & parent );
QVariant data ( const QModelIndex & index, int role );
4

0 回答 0