crossplatform.ru

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

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


Новичок


Группа: Новичок
Сообщений: 6
Регистрация: 18.8.2010
Пользователь №: 1972

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




Репутация:   0  


добрый день ...
в общем имею набор данных заключенных в структуре вида QMap<QString,QMap<QString,int>*>. необходимо отразить эти данные в QTreeView. поскольку с Qt сталкиваюсь впервые прошу подсказки какой наиболее предпочтительный способ можно придумать.

вид отображения соответственно:

|- некий параметр
| |- значение - эквивалент
| |- значение - эквивалент
| `- значение - эквивалент
`- и еще параметр
|- значение - эквивалент
|- значение - эквивалент
`- значение - эквивалент

сие реально???
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 18.8.2010, 12:34
Сообщение #2


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

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

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




Репутация:   34  


вообще, класс вида

QMap<parent_id,child_id>

как раз и применяется для хранения дерева

В твоём случае у тебя всего 2-уровневое дерево
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
karpoffhome
  опции профиля:
сообщение 18.8.2010, 12:57
Сообщение #3


Новичок


Группа: Новичок
Сообщений: 6
Регистрация: 18.8.2010
Пользователь №: 1972

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




Репутация:   0  


как бы да. но я не соображу как эту структуру данных передать QTreeView
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 18.8.2010, 13:20
Сообщение #4


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

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

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




Репутация:   34  


её надо не передавать, а прошагать все элементы мапа и добавить их по очереди на свои места в дерево
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 18.8.2010, 13:40
Сообщение #5


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

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

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




Репутация:   94  


Словарь не годится для создания дерева, это я уже прошёл.
Нужно делать класс на подобие того, что описан в примере "Editable Tree Model" (пример "Simple Tree Model" не смотри, он паршивый)
т.к. нужно хранить информацию о всех детях, плюс данные, особенно если есть данные для разных ролей.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 18.8.2010, 13:54
Сообщение #6


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

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

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




Репутация:   34  


У меня есть класс для представления дерева - в нём используется всего один экземпляр std::map<... ,...>

Так что, ещё как годится :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DIMEDROLL
  опции профиля:
сообщение 18.8.2010, 15:15
Сообщение #7


Участник
**

Группа: Участник
Сообщений: 165
Регистрация: 28.9.2008
Из: Киев
Пользователь №: 304

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




Репутация:   0  


Цитата(karpoffhome @ 18.8.2010, 12:57) *
как бы да. но я не соображу как эту структуру данных передать QTreeView

А зачем тебе QTreeView? Возможно подойдет QTreeWidget? в него легко передать твою структуру данных
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
karpoffhome
  опции профиля:
сообщение 19.8.2010, 10:20
Сообщение #8


Новичок


Группа: Новичок
Сообщений: 6
Регистрация: 18.8.2010
Пользователь №: 1972

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




Репутация:   0  


Цитата(DIMEDROLL @ 18.8.2010, 16:15) *
Цитата(karpoffhome @ 18.8.2010, 12:57) *
как бы да. но я не соображу как эту структуру данных передать QTreeView

А зачем тебе QTreeView? Возможно подойдет QTreeWidget? в него легко передать твою структуру данных


в классах пока не особо хорошо разбираюсь :)

пытаюсь сделать следующую штуку: описанная структура содержит данные, которые редактируются, удаляются, добавляются. параметры не меняются, модифицируются лишь связки "значение - эквивалент". хотелось бы найти самый оптимальный по трудозатратам и результатам путь (класс :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DIMEDROLL
  опции профиля:
сообщение 19.8.2010, 10:44
Сообщение #9


Участник
**

Группа: Участник
Сообщений: 165
Регистрация: 28.9.2008
Из: Киев
Пользователь №: 304

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




Репутация:   0  


ну тогда прийдется вникать в Model/View Programming,
самым простым вариантом, имхо, является использование связки QStandardItemModel\QTreeView, наследоваться от QTreeView и реализовать добавление, удаление, редактирование. Смотри в ассистанте доку по QStandardItemModel:
Цитата
An example usage of QStandardItemModel to create a tree:

 QStandardItemModel model;
QStandardItem *parentItem = model.invisibleRootItem();
for (int i = 0; i < 4; ++i) {
     QStandardItem *item = new QStandardItem(QString("item %0").arg(i));
     parentItem->appendRow(item);
     parentItem = item;
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
karpoffhome
  опции профиля:
сообщение 20.8.2010, 11:06
Сообщение #10


Новичок


Группа: Новичок
Сообщений: 6
Регистрация: 18.8.2010
Пользователь №: 1972

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




Репутация:   0  


подскажите, а есть ли возможность отключить автоматическую сортировку по ключу в QMap
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 19.11.2019, 3:57