在QTableView中显示std :: map

时间:2012-12-05 22:35:53

标签: c++ qt map tableview qtableview

我有一些存储在std :: map中的数据,需要在QTableView中显示。 所以我从QAbstractItemModel获得了我的模型类,但是我遇到了一个问题:

“data”方法为我提供了一个QModelIndex,它包含数据条目的预期行号。但由于我使用的是地图而不是矢量,因此无法使用row参数随机访问它。 所以我的想法是覆盖“index”方法,该方法生成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 );

0 个答案:

没有答案