Russian Qt Forum

Qt => Model-View (MV) => Тема начата: slava_d200 от Февраль 03, 2013, 12:17



Название: QTableView отобразить QMultiMap
Отправлено: slava_d200 от Февраль 03, 2013, 12:17
Прошу помощи.

есть контейнер QMultiMap - ключ контейнера не уникальный.
надо отобразить в QTableView.

создал свой класс от QAbstractTableModel

загвозка встала в процедуре data.

как определить какой сейчас элемент контейнера надо выводится?
QMultiMap по описание не работает по индексу.

выход на данный момент я вижу тока один это для каждого раза вывода.
надо делать перебор контейнера и определять (порядковый номер = index.row()+1)

может есть другой способ получения текущего элемента контейнера?


Название: Re: QTableView отобразить QMultiMap
Отправлено: kambala от Февраль 03, 2013, 15:41
а ключом что у тебя является? строка? если да, то всё просто:
Код
C++ (Qt)
QMultiMap<int, QString> map;
QStringList values = map.value(index.row());
return values.size() > index.column() ? values.at(index.column()) : "no value";


Название: Re: QTableView отобразить QMultiMap
Отправлено: slava_d200 от Февраль 03, 2013, 22:46
а ключом что у тебя является? строка? если да, то всё просто:
Код
C++ (Qt)
QMultiMap<int, QString> map;
QStringList values = map.value(index.row());
return values.size() > index.column() ? values.at(index.column()) : "no value";

у меня ключ - число.
при этом этот ключ не уникальный.
при этом может получится так что ключ имеет значение 5, а количество элементов в QMultiMap будет одно.
и в результате Ваш вариант не отобразит мне что надо.

думаю что без перебора - мою задачу не решить.


Название: Re: QTableView отобразить QMultiMap
Отправлено: kambala от Февраль 03, 2013, 22:58
я не совсем понимаю по какому ты принципу хочешь отобразить свои данные: что пойдет в какую строку, что и в какой столбец?

можно вообще запросить все ключи словаря, записывая каждый в первый столбец, а во все остальные столбцы — все значения этого ключа. (под этим ты наверное и подразумеваешь «полный перебор»)