Название: Часть дерева Отправлено: Igors от Май 29, 2018, 08:33 Добрый день
Есть такое дерево Цитировать Объект 1 Отобразить все дерево (целиком) - без проблем. Но вот в одном окне нужно показать не все, а только те айтемы что юзер указал, это могут быть только листья дерева. Напр он может отобрать Трансформации Позиция X Y Z Угол X Угол Y Угол Z ... Материал Индекс преломления Цвет R G B ..... Объект 2 .... Цитировать Объект 1 -> Позиция -> X Но напр выбор "Объект 1 -> Материал" недопустим, это не лист.Объект 1 -> Угол Y Объект 1 -> Индекс преломления и.т.д Вопрос: как удачно показать такую "выкопировку из дерева" ? Ну "обгрызаное дерево" (т.е. тупо копировать всю струкуру и удалить пустые ветки) точно нехорошо. Поэтому, не долго думая, я сделал как таблицу в 2 колонки (хотя все равно юзаю QTreeWidget), т.е. так Цитировать Объект 1 | Позиция_X Ну тоже не блеск. Имена объектов не уникальны, напр есть 100 "Объект 1" и неясно что к чему. Также приходится извиваться чтобы склеить "Позиция_X". Объект 1 | Угол Y Объект 1 | Индекс преломления И еще - внутри объектов отобранные айтемы должны следовать в том же порядке что и в полном дереве. А вот сами объекты - в порядке их добавления в данное окно. Спасибо Название: Re: Часть дерева Отправлено: zhbr от Май 29, 2018, 10:51 если бы порядок объектов нужен был бы как в основном дереве, то я бы отнаследовался от QSortFilterProxyModel и реализовал бы метод filterAcceptsRow(). в любом случае думаю нужно смотреть в сторону проксимоделей.
|