如何在QGraphicsWidget中设置Qwidget?

时间:2013-10-13 08:29:01

标签: c++ qt qwidget

QGraphicsWidget是否可能是QWidget的父级?我有QGraphicsItem,我想在此项目中添加QWidget,如何在QWidgetQGraphicsItem中设置QGraphicsWidgetQGraphicsItem

2 个答案:

答案 0 :(得分:4)

QGraphicsWidget基本上是QGraphicsItem的{​​{1}} ...它提供了一个你可以使用的布局,所以它应该没问题

使用: QWidget

答案 1 :(得分:4)

QWidget和QGraphicsWidget非常不同。但是,QGraphics系统提供了一个QGraphicsProxyWidget,用于在QGraphicsScene中嵌入基于QWidget和QWidget的项目。

在将QGraphicsProxyWidget添加到QGraphicsScene之前,您可以直接创建QGraphicsProxyWidget并调用函数setWidget: -

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);