Отображение std :: map в QTableView

У меня есть какие-то данные, хранящиеся в std :: map, и мне нужно отобразить их в QTableView.
Итак, у меня есть мой класс модели из QAbstractItemModel, но я столкнулся с проблемой:

Метод «data» дает мне QModelIndex, который содержит ожидаемый номер строки в записи данных. Но так как я использую карту, а не вектор, я не могу получить к ней произвольный доступ с параметром строки.
Поэтому моя идея состояла в том, чтобы переписать метод «index», который генерирует объект QModelIndex и содержит соответствующий хэш-ключ для каждого объекта.
Но это не облегчает задачу, поскольку мне потребуется снова получить хеш-ключ по номеру строки.
Конечно, я мог бы пройтись по всей карте от begin () до end (), чтобы найти n-ую строку / элемент, но это было бы крайне неэффективно.

Есть ли у вас какие-либо советы, как правильно отобразить std :: map в QTableView?

struct Data {
...
};

std::map<int, Data> dataMapping;

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

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]