Russian Qt Forum
Ноябрь 23, 2024, 03:58 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как сделать такую модель/представление?  (Прочитано 3612 раз)
phpCoder
Гость
« : Март 13, 2015, 21:33 »

Добрый день.

Нужно сделать следующую модель/представление:
Есть три колонки (аля QListWidget/View) - A1, B1 и B2. Как видно, две последних колонки объеденены одним смыслом. Из колонки А1 можно перетаскивать итемы только в колонку B1. Из B1 соответственно обратно в А1. Перетаскивания вида А1 -> А1 и B1 -> B1 запрещены. Перетаскивать что-либо в B2 также запрещается.
Когда пользователь нажимает (выделяет) элемент в колонке B2, в колонке B1 отображаются его дочерние элементы (если они есть).

Как можно подобное сделать? На какие классы смотреть? Наследовать что-то или как-то сигналами/слотами объединить обособленные QListWidget/View?
Записан
Bepec
Гость
« Ответ #1 : Март 13, 2015, 22:19 »

У вас по смыслу получаются 3 View. 1 основная, вторая связанные с основной, третья - связанный с второй. 3 степени иерархии. Как это в одну view вместить я не представляю Улыбающийся
Записан
phpCoder
Гость
« Ответ #2 : Март 13, 2015, 22:35 »

Колонка B1 сделана для просмотра содержимого элемента, выбранного в колонке B2. Т.е. все это работает как в QColumnView. Я бы сделал три отдельных QListWidget/View, но QListWidget/View не иерархична. Значит для колонок B1 и B2 нужна иерархия, но при этом чтобы внешне на экране это выглядело как QListWidget/View.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #3 : Март 14, 2015, 09:11 »

Когда пользователь нажимает (выделяет) элемент в колонке B2, в колонке B1 отображаются его дочерние элементы (если они есть).
Странно что дети слева от родителя, ну Вам виднее. В любом случае это дерево, так почему не использовать QTreeWidget? Придется немного повозиться с DnD, но это не смертельно
Записан
phpCoder
Гость
« Ответ #4 : Март 14, 2015, 10:27 »

Я хотел разделить родительные элементы и дочерние элементы и расположить их в разные виджеты (как это сделано в QColomnView) - так мне удобнее. А в QTreeWidget как это сделать?
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #5 : Март 14, 2015, 11:59 »

Я хотел разделить родительные элементы и дочерние элементы и расположить их в разные виджеты (как это сделано в QColomnView) - так мне удобнее.
А как в QColomnView Вы добавите колонку "A" эл-ты которой ни родители ни чайлды колонок B1 и B2 ?

А в QTreeWidget как это сделать?
Добавляете QTreeWidgetItem(ы) которые могут иметь любое число колонок, и располагаете эти колонки как надо
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.084 секунд. Запросов: 23.