Название: Отображение различных виджетов для различных элементов модели Отправлено: Fat-Zer от Январь 09, 2011, 05:56 Собственно сабж.
Есть модель, есть TreeView, при выборе определённого элемента в виде надо на соседнем виджете отобразить правильное окно настроек. Как это правильно было бы сделать? Название: Re: Отображение различных виджетов для различных элементов модели Отправлено: Karl-Philipp от Январь 09, 2011, 11:17 Можно, например, определять индекс элемента в TreeView, на основе чего отображать нужные настройки.
Название: Re: Отображение различных виджетов для различных элементов модели Отправлено: Fat-Zer от Январь 09, 2011, 11:44 Можно, например, определять индекс элемента в TreeView, на основе чего отображать нужные настройки. Сейчас делаю так: Код Где createSettingWidget(ui->itemEdit); - виртуальный метод у каждого наследника SceneItem, который создаёт виджет с данным родителем. Вы, я так понял, тоже самое имели в виду? Но я собираючь отказываться от SceneItem'ов, так как модель это просто интерфейс между своей структурой данных и видом qt, а так как она сейчас реализована приходится выращивать отдельную иерархию для айтемов для модели параллельно с основной структурой и там приходится применять различные неуклюжие методы. Да и выглядит всё это очень громоздко... Если у меня до этого руки дойдут, то хочу избавится от этого "второго дерева" и получать этот виджет через саму модель (может использовать свою роль ???) что посоветуете? Название: Re: Отображение различных виджетов для различных элементов модели Отправлено: Karl-Philipp от Январь 09, 2011, 11:58 Я думал сделать что-то вроде такого:
Код
В слоте определять номер строки (и если надо столбца элемента) на основе чего показывать соответствующие настройки. Название: Re: Отображение различных виджетов для различных элементов модели Отправлено: Fat-Zer от Январь 09, 2011, 12:20 Тоже вариант... но надо ещё думать какой фильтр на событие прикрутить... не по каждому же чиху виджет дёргать... и опять же проблема как поприличней соотнести QModelIndex с нужным виджетом в итоге получаем теже яица, только в профиль... да и наследовать надо QTreeWidget... =/
Название: Re: Отображение различных виджетов для различных элементов модели Отправлено: Karl-Philipp от Январь 09, 2011, 12:56 Возможно стоило глянуть сначала на
Цитировать void QAbstractItemView::activated ( const QModelIndex & index ) [signal] по поводу соотношения QModelIndex с нужным виджетом:This signal is emitted when the item specified by index is activated by the user. ничего не вижу неприличного в том, чтобы связывать сигнал и слот, передавая текущий индекс :) В классе QModelIndex есть же методы row() и colomn(). |