QGraphicsWidget
是否可能是QWidget
的父级?我有QGraphicsItem
,我想在此项目中添加QWidget
,如何在QWidget
或QGraphicsItem
中设置QGraphicsWidget
是QGraphicsItem
?
答案 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);