Здравствуйте, гость ( Вход | Регистрация )
igor_bogomolov | Дата 24.8.2010, 16:24 |
void QTreeView::expandAll () [slot] |
|
karpoffhome | Дата 24.8.2010, 16:10 |
решил проблему следующим образом: 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++; } теперь возник следующий вопрос, возможно ли сделать так чтобы все отображалось в развернутом дереве, а то все свернутое и жутко не удобное. |
|
DEADHUNT | Дата 20.8.2010, 11:39 |
нет. Но вместо него можно использовать хэш (QHash), он хранит в том порядке, в котором добавляли QHash is unordered, so an iterator's sequence cannot be assumed to be predictable. If ordering by key is required, use a QMap. хэш таблица не сохраняет порядок. |
|
Litkevich Yuriy | Дата 20.8.2010, 11:33 |
подскажите, а есть ли возможность отключить автоматическую сортировку по ключу в QMap нет. Но вместо него можно использовать хэш (QHash), он хранит в том порядке, в котором добавляли |
|
Алексей1153 | Дата 20.8.2010, 11:18 |
DEADHUNT, если сортировать не надо, то зачем хранить как дерево - пущай вектор будет. | |
DEADHUNT | Дата 20.8.2010, 11:16 |
karpoffhome, нету такой возможности - примени другой контейнер ) Например, вектор или список в stl для этого можно 3 параметр шаблона поменять, можно использовать std::unordered_map/boost::unordered_map, в Qt для этого для ключа нужно переопределить operator < |
|
Алексей1153 | Дата 20.8.2010, 11:08 |
karpoffhome, нету такой возможности - примени другой контейнер ) Например, вектор или список | |
karpoffhome | Дата 20.8.2010, 11:06 |
подскажите, а есть ли возможность отключить автоматическую сортировку по ключу в QMap | |
DIMEDROLL | Дата 19.8.2010, 10:44 |
ну тогда прийдется вникать в Model/View Programming, самым простым вариантом, имхо, является использование связки QStandardItemModel\QTreeView, наследоваться от QTreeView и реализовать добавление, удаление, редактирование. Смотри в ассистанте доку по QStandardItemModel: Цитата An example usage of QStandardItemModel to create a tree:
|
|
karpoffhome | Дата 19.8.2010, 10:20 |
как бы да. но я не соображу как эту структуру данных передать QTreeView А зачем тебе QTreeView? Возможно подойдет QTreeWidget? в него легко передать твою структуру данных в классах пока не особо хорошо разбираюсь пытаюсь сделать следующую штуку: описанная структура содержит данные, которые редактируются, удаляются, добавляются. параметры не меняются, модифицируются лишь связки "значение - эквивалент". хотелось бы найти самый оптимальный по трудозатратам и результатам путь (класс |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 24.4.2024, 13:53 |