Как установить Qwidget внутри QGraphicsWidget?

0

Возможно ли, что QGraphicsWidget является родителем для QWidget? У меня есть QGraphicsItem и я хочу добавить QWidget внутри этого элемента. Как установить QWidget в QGraphicsItem или QGraphicsWidget, QGraphicsWidget дочерним элементом QGraphicsItem?

Теги:
qt
qwidget

2 ответа

3
Лучший ответ

QGraphicsWidget - это в основном QGraphicsItem для QWidget... он обеспечивает макет, который вы можете использовать, поэтому он не должен быть проблемой вообще

использование: QGraphicsScene::addWidget( QWidget * widget, Qt::WindowFlags wFlags = 0 )

  • 0
    Спасибо тебе за ответ, Решено :)
4

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);
  • 0
    Спасибо вам за ваш ответ :)
  • 0
    Не за что; O)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню