Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Igors от Июль 17, 2015, 11:58



Название: Выборка из дерева
Отправлено: Igors от Июль 17, 2015, 11:58
Добрый день

Есть дерево объектов, имена объектов НЕ уникальны. Из этого дерева юзер может делать произвольные выборки, т.е. создавать/редактировать контейнер(ы) указателей на объекты. Помещение объекта в выборку и удаление из нее никак не меняет сам объект ни иерархию. Помещение объекта-родителя в выборку НЕ помещает туда автоматически всех его потомков по дереву, т.е. в самой выборке никакой иерархии нет, она там и не нужна.

Выборка(и) отображается в отдельном окне в виде листбокса. Претензия пользователя типа: "в окне я совершенно не вижу что это за объект. Да, я могу  его выбрать, и это будет показано в окне иерархии - но когда у меня 100 объектов "Cube" я ж не могу каждый так щупать".

Но у меня совсем нет идей как это разрулить. Простой пример: в выборку добавлен всего 1 объект, но он на 5-м уровне иерархии. И что/как я должен рисовать?

Спасибо


Название: Re: Выборка из дерева
Отправлено: Авварон от Июль 17, 2015, 13:44
имена объектов НЕ уникальны.

Для начала исправить это.

Также при наведении мышки на объект в списке можно подсвечивать объект в иерархии.


Название: Re: Выборка из дерева
Отправлено: Авварон от Июль 17, 2015, 13:49
Еще добавить возможность добавлять в выборку из иерархии. Правый клик -> "добавить в выборку"


Название: Re: Выборка из дерева
Отправлено: Fregloin от Июль 17, 2015, 14:08
значит не стоит выводить эти выборки в листбокс, а в тривью.
еще как вариант на списком объектов (я так понимаю которые принадлежат одному узлу) можете нарисовать
контрол, который если не ошибаюсь в файндере рисует путь из ктаалогов в виде толстых стрелок, где в каждой такой стрелке
пишете название узла, который ведет к этой группе. Просто и наглядно.


Название: Re: Выборка из дерева
Отправлено: Igors от Июль 17, 2015, 15:07
Для начала исправить это.
Неуникальность имен диктуется др соображениями, это не то что надо исправлять

Также при наведении мышки на объект в списке можно подсвечивать объект в иерархии.
Не видно заметных выгод по сравнению с имеющимся "выбрать", да и объект может быть в collapsed ветке. Вообще hover в данном случае "чревато" т.к. вызываются OpenGL перерисовки что могут быть очень массивными

Еще добавить возможность добавлять в выборку из иерархии. Правый клик -> "добавить в выборку"
Имеется, как и "удалить из выборки"

значит не стоит выводить эти выборки в листбокс, а в тривью.
А у меня листбокс и так QTreeWidget, может иметь раскладушки. Но как рисовать "некомплектное" дерево?

еще как вариант на списком объектов (я так понимаю которые принадлежат одному узлу) можете нарисовать
контрол, который если не ошибаюсь в файндере рисует путь из ктаалогов в виде толстых стрелок, где в каждой такой стрелке пишете название узла, который ведет к этой группе. Просто и наглядно.
А где это в Finder'е?


Название: Re: Выборка из дерева
Отправлено: Авварон от Июль 17, 2015, 20:54
А, я думал у вас типа граф на сцене, а там тупо тривьюшка.
Как вариант, строить тоже самое дерево, но в котором нет невыбранных элементов.


Название: Re: Выборка из дерева
Отправлено: Fregloin от Июль 20, 2015, 14:17
Я имел в виду контрол, который на рисунке вверху - где путь отображается в виде кнопок-стрелок... В левом углу домик это корень и пошёл путь к вашим узлам...