Название: QGraphicsScene: Как сделать более кошерно... Отправлено: Figaro от Март 12, 2011, 04:35 Доброго времени суток..
Не могу решить как реализовать: Есть общая сцена, вью и etc. Юзера там извращаются над графическими примитивами. Нужно сделать историю в виде списка изображений последних изменений (ограничение - не более 60 снапшотов), что то вроде коммита, когда юзер захочет. Окно истории должно поверх основной сцены. Сумбурно немного. У меня есть такие варианты: 1. Сделать отдельное окно на основе обычного виджета и парентом его установить основное для приложения. Соответственно своя сцена, вью. 2. Реализовать еще один вид QGraphicsItem'ов и установить ему максимальный z-order. 3. Тож самое как и в п.2, но извратиться группой айтемов. 4. Использовать наследника QGraphicsWindow. Хм.. остановился сначала на п.4. но смутил пост на форуме нокии одного уважаемого пиндоса, типа: "QGraphicsScene.addWidget скоро отомрет, оставлен ток для совместимости".. Так вот. и P.S. Не хочется быть велосипедо строителем, но есть ли готовые решения? Название: Re: QGraphicsScene: Как сделать более кошерно... Отправлено: _OLEGator_ от Март 13, 2011, 21:21 Я бы сделал обычным списком (QListView), а его хоть поверх сцены разместить можно, хоть в саму сцену вставить
Название: Re: QGraphicsScene: Как сделать более кошерно... Отправлено: Sancho_s_rancho от Март 13, 2011, 21:41 Виджет пихать в сцену не очень хорошо в плане производительности. Т.е. на данный момент (к примеру) вам надо только информацию вывести, а потом вы захотите его еще и двигать или менять размер и тут будет засада. Да и виджет этот несколько инородно для сцены в плане внешнего вида.
Вариант с QGraphicsItem-ми отрисовываться будет гораздо быстрее. Создаете прямоугольник QGraphicsItem с ZValue=1.0 и в нем размещаете все, что надо. Пост Скриптум: однако к словам этого пиндоса я отношусь скептически. Просто это не эффективно. Название: Re: QGraphicsScene: Как сделать более кошерно... Отправлено: _OLEGator_ от Март 13, 2011, 21:46 Самому изобретать свой вьювер... В данном случае имеет смысл прикрутить стандартный механизм Undo/Redo.
Про производительность думаю не критично, если вообще будет заметно и почему для сцены виджеты инородны? они по факту просто картинки для сцены, а все события перетранслируются через QGraphicsProxyWidget... Название: Re: QGraphicsScene: Как сделать более кошерно... Отправлено: Sancho_s_rancho от Март 13, 2011, 21:58 Самому изобретать свой вьювер... В данном случае имеет смысл прикрутить стандартный механизм Undo/Redo. Про производительность: автору видней развитие программы. Мое дело предупредить (Warning: This class is provided for convenience when bridging QWidgets and QGraphicsItems, it should not be used for high-performance scenarios.). Может и не критично. Про производительность думаю не критично, если вообще будет заметно и почему для сцены виджеты инородны? они по факту просто картинки для сцены, а все события перетранслируются через QGraphicsProxyWidget... Инородны в плане внешнего вида. Т.е. ,грубо говоря, стиль виджета надо подогнать под содержимое сцены. Название: Re: QGraphicsScene: Как сделать более кошерно... Отправлено: _OLEGator_ от Март 13, 2011, 22:03 ну собственно мы автору уже предоставили выбор)
какой там стиль у списка, только краев, а делегат все равно самому реализовывать скорее всего надо будет... |