crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V  < 1 2  
Ответить в данную темуНачать новую тему
> коим образом QMap<> представить как модель для QTreeView
Алексей1153
  опции профиля:
сообщение 20.8.2010, 11:08
Сообщение #11


фрилансер
******

Группа: Участник
Сообщений: 2900
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


karpoffhome, нету такой возможности - примени другой контейнер ) Например, вектор или список
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DEADHUNT
  опции профиля:
сообщение 20.8.2010, 11:16
Сообщение #12


Активный участник
***

Группа: Участник
Сообщений: 430
Регистрация: 15.4.2009
Пользователь №: 686

Спасибо сказали: 26 раз(а)




Репутация:   2  


Цитата(Алексей1153 @ 20.8.2010, 12:08) *
karpoffhome, нету такой возможности - примени другой контейнер ) Например, вектор или список

в stl для этого можно 3 параметр шаблона поменять, можно использовать std::unordered_map/boost::unordered_map, в Qt для этого для ключа нужно переопределить operator <

Сообщение отредактировал DEADHUNT - 20.8.2010, 11:17
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 20.8.2010, 11:18
Сообщение #13


фрилансер
******

Группа: Участник
Сообщений: 2900
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


DEADHUNT, если сортировать не надо, то зачем хранить как дерево - пущай вектор будет.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 20.8.2010, 11:33
Сообщение #14


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9656
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(karpoffhome @ 20.8.2010, 15:06) *
подскажите, а есть ли возможность отключить автоматическую сортировку по ключу в QMap
нет. Но вместо него можно использовать хэш (QHash), он хранит в том порядке, в котором добавляли
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DEADHUNT
  опции профиля:
сообщение 20.8.2010, 11:39
Сообщение #15


Активный участник
***

Группа: Участник
Сообщений: 430
Регистрация: 15.4.2009
Пользователь №: 686

Спасибо сказали: 26 раз(а)




Репутация:   2  


Цитата(Litkevich Yuriy @ 20.8.2010, 12:33) *
нет. Но вместо него можно использовать хэш (QHash), он хранит в том порядке, в котором добавляли

QHash is unordered, so an iterator's sequence cannot be assumed to be predictable. If ordering by key is required, use a QMap.
хэш таблица не сохраняет порядок.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
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]
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V  < 1 2
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 14.7.2020, 15:58