Возможно ли, что QGraphicsWidget
является родителем для QWidget
? У меня есть QGraphicsItem
и я хочу добавить QWidget
внутри этого элемента. Как установить QWidget
в QGraphicsItem
или QGraphicsWidget
, QGraphicsWidget
дочерним элементом QGraphicsItem
?
QGraphicsWidget
- это в основном QGraphicsItem
для QWidget
... он обеспечивает макет, который вы можете использовать, поэтому он не должен быть проблемой вообще
использование: QGraphicsScene::addWidget( QWidget * widget, Qt::WindowFlags wFlags = 0 )
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);