crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> QTreeView + QStandartItemModel
edwardoid
  опции профиля:
сообщение 24.6.2011, 8:43
Сообщение #1


Участник
**

Группа: Участник
Сообщений: 171
Регистрация: 1.5.2008
Из: Ереван, Армения
Пользователь №: 164

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




Репутация:   0  


Как это использовать? Мне нужно обычнов дерево состоящее из айтемов типа [{name}{QWidget}]

parent QLabel
..|----child QComboBox
..|----child QSpinBox
..|----child QLineEdit
..|-----sub-parent QLabel
.........|----child QComboBox
.........|----child QSpinbox
....

Как сделать, или есть где-нибудь такое под LGPL/Apache?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 24.6.2011, 9:51
Сообщение #2


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

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

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




Репутация:   94  


похоже тебе без создания наследника от представления (QTreeView) не обойтись. А это нигде в документации не описано - придётся постоянно подглядывать в исходник QTreeView.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
edwardoid
  опции профиля:
сообщение 24.6.2011, 9:51
Сообщение #3


Участник
**

Группа: Участник
Сообщений: 171
Регистрация: 1.5.2008
Из: Ереван, Армения
Пользователь №: 164

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




Репутация:   0  


Вроде так и сделал, я думал есть тропинка покороче :(
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 24.6.2011, 9:54
Сообщение #4


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

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

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




Репутация:   94  


Дело в том, если я правильно понял, ветвь дерева всегда содержит строго определённую последовательность виджетов, и каждая другая ветвь, содержит такую же последовательность. Делегатом такое не разрулить, т.к. в QTreeView делегат - строка, а не ячейка или колонка.

В наследнике нужно будет знать и поддерживать иерархию виджетов.


П.С.
Если данных мало, то тут проще будет реализовать через QTreeWidget.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
edwardoid
  опции профиля:
сообщение 24.6.2011, 10:01
Сообщение #5


Участник
**

Группа: Участник
Сообщений: 171
Регистрация: 1.5.2008
Из: Ереван, Армения
Пользователь №: 164

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




Репутация:   0  


На самом деле ветвь дерева хотелсоь бы сделать гибкой. там на самом деле уровень скореев сего будет такой

[root]
..|--[group]
..|....|--- [childs]
..|....L--- [subgrups]
..|.............|---[child] // таких child-ов может быть несколько
..|.............|---[child]
..|.............L---[child]
..|
..|--[group]
..|....|--- [childs] // таких тоже
..|....L--- [subgrups]
..|.............|---[child]
..|.............|---[child]
..|.............L---[child]
..|
....
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Анна
  опции профиля:
сообщение 14.7.2011, 16:04
Сообщение #6


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

Группа: Участник
Сообщений: 276
Регистрация: 22.5.2008
Из: Зеленоград
Пользователь №: 181

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




Репутация:   4  


Цитата(Litkevich Yuriy @ 24.6.2011, 10:54) *
... в QTreeView делегат - строка, а не ячейка или колонка...

Litkevich Yuriy, можно поподробнее об этом месте. Почему строка?

Не знаю, поможет ли такое соображение. Я в QStandardItem хранила указатель на виджет. В делегате можно этот виджет подсовывать в качестве редактора.

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 14.7.2011, 18:53
Сообщение #7


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

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

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




Репутация:   94  


Цитата(Анна @ 14.7.2011, 19:04) *
Litkevich Yuriy, можно поподробнее об этом месте. Почему строка?
Да, прошу прощения, делегата не трогать. Просто привык, что обычно спрашивают про QTreeWidget, а там QTreeWidgetItem - представляет строку, а не ячейку.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 18.10.2019, 2:18