Russian Qt Forum
Сентябрь 29, 2024, 00:29 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QTableView отобразить QMultiMap  (Прочитано 3355 раз)
slava_d200
Гость
« : Февраль 03, 2013, 12:17 »

Прошу помощи.

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

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

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

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

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

может есть другой способ получения текущего элемента контейнера?
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4744



Просмотр профиля WWW
« Ответ #1 : Февраль 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";
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
slava_d200
Гость
« Ответ #2 : Февраль 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 будет одно.
и в результате Ваш вариант не отобразит мне что надо.

думаю что без перебора - мою задачу не решить.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4744



Просмотр профиля WWW
« Ответ #3 : Февраль 03, 2013, 22:58 »

я не совсем понимаю по какому ты принципу хочешь отобразить свои данные: что пойдет в какую строку, что и в какой столбец?

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

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.103 секунд. Запросов: 22.