Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: klep от Октябрь 29, 2009, 00:27



Название: QGraphicsScene и embeddedWidget
Отправлено: klep от Октябрь 29, 2009, 00:27
Всем привет,

В Qt я новичек, так что сорри если вопросы тривиальные.
У меня есть QGraphicsScene и на ней много разных QGraphicsItem ... если пользователь нажимает кнопку, мне необходимо показать embeddedWidget на Scene в котором можно добавить новые QGraphicsItem.
При этом сцена должна "очиститься" и не показывать ничего кроме Widgeta и его Items.
Весь процесс добавления должен быть эзолирован новых Item от старых.

Как это лучше сделать ?

На данный момент у меня такой вариант

1) кидаем на Scene разные QGraphicsItem
2) Идет вызов встроенной формы
  2.1) создаем общую группу QGraphicsItemGroup и туда добавляем все Item с Scene
  2.2) делаем SetEnable(false) для QGraphicsitemGroup
  2.3) показываем форму в новом QGraphicsRectItem размер которого перекрывает весь Scene и ZValue которого == 255
  2.4) добавляем новые Item на RectItem
  2.5) меняем предка для новых Item на Scene
  2.6) Сносим группу

можно было бы не замарачиваться с пунктом (1 и 2.1) если бы grabMouse() работал бы как следует :) а то он блокирует и embeddedWidget тоже , который == дочерний элемент.


Заранее спасибо за помощь


з.ы

Qt 4.5, Kubuntu