| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > Объединить несколько QGraphicsItem в один |
| Автор: becks 6.3.2013, 10:53 |
| Добрый день! Допустим на QGraphicsScene из большого количества айтемов есть необходимость объединить несколько штук в один. Что я имею ввиду: эти несколько выбранных айтемов должны красиво свернуться и вместо них должен остаться видимым один элемент-группа. У этого элемента должен быть значок "+" по клику на который группа разворачивается и приобретает исходную начальную геометрию, с той лишь разницей, что у каждого из элементов появится знак "-", нажав на который вся группа красиво свернется. Вот картиночный вариант: 1) http://imageshost.ru/ 2) http://imageshost.ru/ 3) http://imageshost.ru/ Как это лучше сделать? Лучше ипользовать QGraphicsItemGroup или нужно использовать setParentItem() и просто скрывать элементы или как-то иначе? |
| Автор: math64 6.3.2013, 11:42 |
| Группа не очень поможет (в развёрнутом виде GraphicsItem'ы можно объединить в группу, но для отображения в свёрнутом виде нужен другой GraphicsItem). У тебя есть разделение модель-вид? Если да (например, GraphicsItem связан с TreeWidgetItem) - ненужные GraphicsItem'ы можно просто убирать со сцены (при сворачивании узла дерева) и создавать по мере надобности (при разворачивании). |