2013-10-13 5 views
0

Возможно ли, что a QGraphicsWidget является родителем для QWidget? У меня есть QGraphicsItem, и я хочу добавить QWidget внутри этого пункта, как я могу установить QWidget в QGraphicsItem или QGraphicsWidget, который является дочерним из QGraphicsItem?Как установить Qwidget внутри QGraphicsWidget?

ответ

3

QGraphicsWidget в основном QGraphicsItem для QWidget s ... предоставляет макет, который вы можете использовать, так что не должно быть никаких проблем на всех

использования: QGraphicsScene::addWidget(QWidget * widget, Qt::WindowFlags wFlags = 0)

+0

Спасибо за ваш ответ, решенный :) –

4

QWidget и QGraphicsWidget очень разные. Однако система QGraphics предоставляет QGraphicsProxyWidget для встраивания элементов QWidget и QWidget в QGraphicsScene.

Вы можете непосредственно создать QGraphicsProxyWidget и вызовите функцию setWidget, перед добавлением QGraphicsProxyWidget к вашему QGraphicsScene: -

QGraphicsScene* pScene = new QGraphicsScene; 
QWidget* pWidget = new QWidget; 
QGraphicsProxyWidget* pProxy = new QGraphicsProxyWidget(parent); // parent can be NULL 
pProxy->setWidget(pWidget); 
pScene->addItem(pProxy); 

прокси виджет теперь можно перемещать, масштабировать и т.д. в сцене и функциональность его QWidget будет передавать сигналы, чтобы он работал, как ожидалось.

В качестве альтернативы, QGraphicsScene содержит функцию быстрого доступа addWidget, который внутренне создает QGraphicsProxyWidget для вас и возвращает его из функции: -

QGraphicsProxyWidget* pProxy = pScene->addWidget(pWidget); 
+0

Спасибо Вам за Ваш ответ :) –

+0

Добро пожаловать; O) – TheDarkKnight

Смежные вопросы