2013-10-13 36 views

回答

3

QGraphicsWidget基本上是一个QGraphicsItemQWidget ... ...是提供您可以使用,所以应该在所有

使用是没有问题的布局: QGraphicsScene::addWidget(QWidget * widget, Qt::WindowFlags wFlags = 0)

+0

感谢您的回复,解决:) –

4

的QWidget和QGraphicsWidget有很大的不同。然而,QGraphics系统提供了一个QGraphicsProxyWidget,用于在QGraphicsScene中嵌入基于QWidget和QWidget的项目。

您可以直接创建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