1

是否有可能QGraphicsWidget成为父母QWidget?我有一个QGraphicsItem,我想QWidget在这个项目中添加一个,我该如何设置一个QWidget在一个QGraphicsItem或者QGraphicsWidget是一个孩子中设置一个QGraphicsItem

4

2 回答 2

5

QGraphicsWidget基本上是一个QGraphicsItemfor QWidgets ...它提供了一个你可以使用的布局,所以它应该没有问题

利用: QGraphicsScene::addWidget( QWidget * widget, Qt::WindowFlags wFlags = 0 )

于 2013-10-13T09:53:37.273 回答
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);
于 2013-10-14T09:39:49.593 回答