коим образом QMap<> представить как модель для QTreeView |
Здравствуйте, гость ( Вход | Регистрация )
коим образом QMap<> представить как модель для QTreeView |
Алексей1153 |
20.8.2010, 11:08
Сообщение
#11
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
karpoffhome, нету такой возможности - примени другой контейнер ) Например, вектор или список
|
|
|
DEADHUNT |
20.8.2010, 11:16
Сообщение
#12
|
Активный участник Группа: Участник Сообщений: 430 Регистрация: 15.4.2009 Пользователь №: 686 Спасибо сказали: 26 раз(а) Репутация: 2 |
karpoffhome, нету такой возможности - примени другой контейнер ) Например, вектор или список в stl для этого можно 3 параметр шаблона поменять, можно использовать std::unordered_map/boost::unordered_map, в Qt для этого для ключа нужно переопределить operator < Сообщение отредактировал DEADHUNT - 20.8.2010, 11:17 |
|
|
Алексей1153 |
20.8.2010, 11:18
Сообщение
#13
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
DEADHUNT, если сортировать не надо, то зачем хранить как дерево - пущай вектор будет.
|
|
|
Litkevich Yuriy |
20.8.2010, 11:33
Сообщение
#14
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
DEADHUNT |
20.8.2010, 11:39
Сообщение
#15
|
Активный участник Группа: Участник Сообщений: 430 Регистрация: 15.4.2009 Пользователь №: 686 Спасибо сказали: 26 раз(а) Репутация: 2 |
|
|
|
karpoffhome |
24.8.2010, 16:10
Сообщение
#16
|
Новичок Группа: Новичок Сообщений: 6 Регистрация: 18.8.2010 Пользователь №: 1972 Спасибо сказали: 0 раз(а) Репутация: 0 |
решил проблему следующим образом:
CODE QStandardItemModel * paramList; int iRow = 0; QStandardItem * rootItem = paramList->invisibleRootItem(); QMap<QString,QMap<QString,int>*>::const_iterator i; for (i = mapParamList->constBegin();i != mapParamList->constEnd();++i) { int jRow = 0; QStandardItem * paramItem = new QStandardItem(mapParamName->value(i.key())); QMap<QString,int>::const_iterator j; for (j = mapParamList->value(i.key())->constBegin();j != mapParamList->value(i.key())->constEnd();++j) { QStandardItem * keyItem = new QStandardItem(j.key()); QStandardItem * valueItem = new QStandardItem(QString().setNum(j.value())); paramItem->setChild(jRow,0,keyItem); paramItem->setChild(jRow,1,valueItem); jRow++; } rootItem->setChild(iRow,0,paramItem); iRow++; } теперь возник следующий вопрос, возможно ли сделать так чтобы все отображалось в развернутом дереве, а то все свернутое и жутко не удобное. |
|
|
igor_bogomolov |
24.8.2010, 16:24
Сообщение
#17
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
void QTreeView::expandAll () [slot]
|
|
|
Текстовая версия | Сейчас: 1.12.2024, 15:26 |