CopperSpice API  1.8.2
QGraphicsProxyWidget Class Reference

The QGraphicsProxyWidget class provides a proxy layer for embedding a QWidget in a QGraphicsScene. More...

Inheritance diagram for QGraphicsProxyWidget:
QGraphicsWidget QGraphicsObject QGraphicsLayoutItem QObject QGraphicsItem

Public Methods

 QGraphicsProxyWidget (QGraphicsItem *parent=nullptr, Qt::WindowFlags flags=Qt::EmptyFlag)
 ~QGraphicsProxyWidget ()
QGraphicsProxyWidget * createProxyForChildWidget (QWidget *child)
void paint (QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override
void setGeometry (const QRectF &rect) override
void setWidget (QWidget *widget)
QRectF subWidgetRect (const QWidget *widget) const
int type () const override
QWidgetwidget () const
- Public Methods inherited from QGraphicsWidget
 QGraphicsWidget (QGraphicsItem *parent=nullptr, Qt::WindowFlags flags=Qt::EmptyFlag)
 ~QGraphicsWidget ()
QList< QAction * > actions () const
void addAction (QAction *action)
void addActions (const QList< QAction * > &actions)
void adjustSize ()
bool autoFillBackground () const
QRectF boundingRect () const override
const QList< QObject * > & children () const
Qt::FocusPolicy focusPolicy () const
QGraphicsWidget * focusWidget () const
QFont font () const
void getContentsMargins (qreal *left, qreal *top, qreal *right, qreal *bottom) const override
void getWindowFrameMargins (qreal *left, qreal *top, qreal *right, qreal *bottom) const
int grabShortcut (const QKeySequence &sequence, Qt::ShortcutContext context=Qt::WindowShortcut)
void insertAction (QAction *before, QAction *action)
void insertActions (QAction *before, QList< QAction * > actions)
bool isActiveWindow () const
QGraphicsLayoutlayout () const
Qt::LayoutDirection layoutDirection () const
void paint (QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget=nullptr) override
virtual void paintWindowFrame (QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget=nullptr)
QPalette palette () const
QRectF rect () const
void releaseShortcut (int id)
void removeAction (QAction *action)
void resize (const QSizeF &size)
void resize (qreal width, qreal height)
void setAttribute (Qt::WidgetAttribute attribute, bool on=true)
void setAutoFillBackground (bool enabled)
void setContentsMargins (qreal left, qreal top, qreal right, qreal bottom)
void setFocusPolicy (Qt::FocusPolicy policy)
void setFont (const QFont &font)
void setGeometry (const QRectF &rect) override
void setGeometry (const QRectF &size)
void setGeometry (qreal x, qreal y, qreal width, qreal height)
void setLayout (QGraphicsLayout *layout)
void setLayoutDirection (Qt::LayoutDirection direction)
void setPalette (const QPalette &palette)
void setShortcutAutoRepeat (int id, bool enabled=true)
void setShortcutEnabled (int id, bool enabled=true)
void setStyle (QStyle *style)
void setWindowFlags (Qt::WindowFlags flags)
void setWindowFrameMargins (qreal left, qreal top, qreal right, qreal bottom)
void setWindowTitle (const QString &title)
QPainterPath shape () const override
QSizeF size () const
QStylestyle () const
bool testAttribute (Qt::WidgetAttribute attribute) const
int type () const override
void unsetLayoutDirection ()
void unsetWindowFrameMargins ()
Qt::WindowFlags windowFlags () const
QRectF windowFrameGeometry () const
QRectF windowFrameRect () const
QString windowTitle () const
Qt::WindowType windowType () const
- Public Methods inherited from QGraphicsObject
 QGraphicsObject (QGraphicsItem *parent=nullptr)
const QList< QObject * > & children () const
void grabGesture (Qt::GestureType gesture, Qt::GestureFlags flags=Qt::GestureFlags ())
void ungrabGesture (Qt::GestureType gesture)
- Public Methods inherited from QObject
 QObject (QObject *parent=nullptr)
 ~QObject ()
bool blockSignals (bool block)
const QList< QObject * > & children () const
bool connect (const QObject *sender, const QString &signalMethod, const QString &location, const QString &slotMethod, Qt::ConnectionType type=Qt::AutoConnection)
bool connect (const QObject *sender, const QString &signalMethod, const QString &slotMethod, Qt::ConnectionType type=Qt::AutoConnection)
bool disconnect (const QObject *receiver, const QString &slotMethod=QString ()) const
bool disconnect (const QString &signalMethod, const QString &location, const QObject *receiver=nullptr, const QString &slotMethod=QString ()) const
bool disconnect (const QString &signalMethod=QString (), const QObject *receiver=nullptr, const QString &slotMethod=QString ()) const
void dumpObjectInfo ()
void dumpObjectTree ()
QList< QStringdynamicPropertyNames () const
virtual bool event (QEvent *event)
virtual bool eventFilter (QObject *watched, QEvent *event)
template<typename T >
findChild (const QString &childName=QString ()) const
template<class T >
QList< T > findChildren (const QRegularExpression &regExp, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
template<class T >
QList< T > findChildren (const QString &childName=QString (), Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
bool inherits (const QString &className) const
void installEventFilter (QObject *filterObj)
bool isWidgetType () const
bool isWindowType () const
void killTimer (int id)
const QMetaObjectmetaObject () const
void moveToThread (QThread *targetThread)
QString objectName () const
QObject * parent () const
template<class T = QVariant>
property (const QString &name) const
void removeEventFilter (QObject *obj)
void setObjectName (const QString &name)
void setParent (QObject *parent)
bool setProperty (const QString &name, const QVariant &value)
bool signalsBlocked () const
int startTimer (int interval, Qt::TimerType timerType=Qt::CoarseTimer)
QThreadthread () const
- Public Methods inherited from QGraphicsItem
 QGraphicsItem (QGraphicsItem *parent=nullptr)
virtual ~QGraphicsItem ()
bool acceptDrops () const
Qt::MouseButtons acceptedMouseButtons () const
bool acceptHoverEvents () const
bool acceptTouchEvents () const
virtual void advance (int phase)
virtual QRectF boundingRect () const = 0
QRegion boundingRegion (const QTransform &itemToDeviceTransform) const
qreal boundingRegionGranularity () const
CacheMode cacheMode () const
QList< QGraphicsItem * > childItems () const
QRectF childrenBoundingRect () const
void clearFocus ()
QPainterPath clipPath () const
virtual bool collidesWithItem (const QGraphicsItem *graphicsItem, Qt::ItemSelectionMode mode=Qt::IntersectsItemShape) const
virtual bool collidesWithPath (const QPainterPath &path, Qt::ItemSelectionMode mode=Qt::IntersectsItemShape) const
QList< QGraphicsItem * > collidingItems (Qt::ItemSelectionMode mode=Qt::IntersectsItemShape) const
QGraphicsItem * commonAncestorItem (const QGraphicsItem *graphicsItem) const
virtual bool contains (const QPointF &point) const
QCursor cursor () const
QVariant data (int key) const
QTransform deviceTransform (const QTransform &viewportTransform) const
qreal effectiveOpacity () const
void ensureVisible (const QRectF &rectF=QRectF (), int xmargin=50, int ymargin=50)
void ensureVisible (qreal x, qreal y, qreal width, qreal height, int xmargin=50, int ymargin=50)
bool filtersChildEvents () const
GraphicsItemFlags flags () const
QGraphicsItem * focusItem () const
QGraphicsItem * focusProxy () const
void grabKeyboard ()
void grabMouse ()
QGraphicsEffectgraphicsEffect () const
QGraphicsItemGroupgroup () const
bool handlesChildEvents () const
bool hasCursor () const
bool hasFocus () const
void hide ()
Qt::InputMethodHints inputMethodHints () const
void installSceneEventFilter (QGraphicsItem *filterItem)
bool isActive () const
bool isAncestorOf (const QGraphicsItem *graphicsItem) const
bool isBlockedByModalPanel (QGraphicsItem **blockingPanel=nullptr) const
bool isClipped () const
bool isEnabled () const
bool isObscured (const QRectF &rectF=QRectF ()) const
bool isObscured (qreal x, qreal y, qreal width, qreal height) const
virtual bool isObscuredBy (const QGraphicsItem *graphicsItem) const
bool isPanel () const
bool isSelected () const
bool isUnderMouse () const
bool isVisible () const
bool isVisibleTo (const QGraphicsItem *graphicsItem) const
bool isWidget () const
bool isWindow () const
QTransform itemTransform (const QGraphicsItem *graphicsItem, bool *ok=nullptr) const
QPainterPath mapFromItem (const QGraphicsItem *graphicsItem, const QPainterPath &path) const
QPointF mapFromItem (const QGraphicsItem *graphicsItem, const QPointF &point) const
QPolygonF mapFromItem (const QGraphicsItem *graphicsItem, const QPolygonF &polygon) const
QPolygonF mapFromItem (const QGraphicsItem *graphicsItem, const QRectF &rectF) const
QPointF mapFromItem (const QGraphicsItem *graphicsItem, qreal x, qreal y) const
QPolygonF mapFromItem (const QGraphicsItem *graphicsItem, qreal x, qreal y, qreal width, qreal height) const
QPainterPath mapFromParent (const QPainterPath &path) const
QPointF mapFromParent (const QPointF &point) const
QPolygonF mapFromParent (const QPolygonF &polygon) const
QPolygonF mapFromParent (const QRectF &rectF) const
QPointF mapFromParent (qreal x, qreal y) const
QPolygonF mapFromParent (qreal x, qreal y, qreal width, qreal height) const
QPainterPath mapFromScene (const QPainterPath &path) const
QPointF mapFromScene (const QPointF &point) const
QPolygonF mapFromScene (const QPolygonF &polygon) const
QPolygonF mapFromScene (const QRectF &rectF) const
QPointF mapFromScene (qreal x, qreal y) const
QPolygonF mapFromScene (qreal x, qreal y, qreal width, qreal height) const
QRectF mapRectFromItem (const QGraphicsItem *graphicsItem, const QRectF &rectF) const
QRectF mapRectFromItem (const QGraphicsItem *graphicsItem, qreal x, qreal y, qreal width, qreal height) const
QRectF mapRectFromParent (const QRectF &rectF) const
QRectF mapRectFromParent (qreal x, qreal y, qreal width, qreal height) const
QRectF mapRectFromScene (const QRectF &rectF) const
QRectF mapRectFromScene (qreal x, qreal y, qreal width, qreal height) const
QRectF mapRectToItem (const QGraphicsItem *graphicsItem, const QRectF &rectF) const
QRectF mapRectToItem (const QGraphicsItem *graphicsItem, qreal x, qreal y, qreal width, qreal height) const
QRectF mapRectToParent (const QRectF &rectF) const
QRectF mapRectToParent (qreal x, qreal y, qreal width, qreal height) const
QRectF mapRectToScene (const QRectF &rectF) const
QRectF mapRectToScene (qreal x, qreal y, qreal width, qreal height) const
QPainterPath mapToItem (const QGraphicsItem *graphicsItem, const QPainterPath &path) const
QPointF mapToItem (const QGraphicsItem *graphicsItem, const QPointF &point) const
QPolygonF mapToItem (const QGraphicsItem *graphicsItem, const QPolygonF &polygon) const
QPolygonF mapToItem (const QGraphicsItem *graphicsItem, const QRectF &rectF) const
QPointF mapToItem (const QGraphicsItem *graphicsItem, qreal x, qreal y) const
QPolygonF mapToItem (const QGraphicsItem *graphicsItem, qreal x, qreal y, qreal width, qreal height) const
QPainterPath mapToParent (const QPainterPath &path) const
QPointF mapToParent (const QPointF &point) const
QPolygonF mapToParent (const QPolygonF &polygon) const
QPolygonF mapToParent (const QRectF &rectF) const
QPointF mapToParent (qreal x, qreal y) const
QPolygonF mapToParent (qreal x, qreal y, qreal width, qreal height) const
QPainterPath mapToScene (const QPainterPath &path) const
QPointF mapToScene (const QPointF &point) const
QPolygonF mapToScene (const QPolygonF &polygon) const
QPolygonF mapToScene (const QRectF &rectF) const
QPointF mapToScene (qreal x, qreal y) const
QPolygonF mapToScene (qreal x, qreal y, qreal width, qreal height) const
QMatrix matrix () const
void moveBy (qreal dx, qreal dy)
qreal opacity () const
virtual QPainterPath opaqueArea () const
virtual void paint (QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget=nullptr) = 0
QGraphicsItem * panel () const
PanelModality panelModality () const
QGraphicsItem * parentItem () const
QGraphicsObjectparentObject () const
QGraphicsWidgetparentWidget () const
QPointF pos () const
void removeSceneEventFilter (QGraphicsItem *filterItem)
void resetMatrix ()
void resetTransform ()
qreal rotation () const
qreal scale () const
QGraphicsScenescene () const
QRectF sceneBoundingRect () const
QMatrix sceneMatrix () const
QPointF scenePos () const
QTransform sceneTransform () const
void scroll (qreal dx, qreal dy, const QRectF &rectF=QRectF ())
void setAcceptDrops (bool on)
void setAcceptedMouseButtons (Qt::MouseButtons buttons)
void setAcceptHoverEvents (bool enabled)
void setAcceptTouchEvents (bool enabled)
void setActive (bool active)
void setBoundingRegionGranularity (qreal granularity)
void setCacheMode (CacheMode mode, const QSize &cacheSize=QSize ())
void setCursor (const QCursor &cursor)
void setData (int key, const QVariant &value)
void setEnabled (bool enabled)
void setFiltersChildEvents (bool enabled)
void setFlag (GraphicsItemFlag flag, bool enabled=true)
void setFlags (GraphicsItemFlags flags)
void setFocus (Qt::FocusReason focusReason=Qt::OtherFocusReason)
void setFocusProxy (QGraphicsItem *graphicsItem)
void setGraphicsEffect (QGraphicsEffect *effect)
void setGroup (QGraphicsItemGroup *group)
void setHandlesChildEvents (bool enabled)
void setInputMethodHints (Qt::InputMethodHints hints)
void setMatrix (const QMatrix &matrix, bool combine=false)
void setOpacity (qreal opacity)
void setPanelModality (PanelModality panelModality)
void setParentItem (QGraphicsItem *parent)
void setPos (const QPointF &pos)
void setPos (qreal x, qreal y)
void setRotation (qreal angle)
void setScale (qreal factor)
void setSelected (bool selected)
void setToolTip (const QString &toolTip)
void setTransform (const QTransform &matrix, bool combine=false)
void setTransformations (const QList< QGraphicsTransform * > &transformations)
void setTransformOriginPoint (const QPointF &origin)
void setTransformOriginPoint (qreal x, qreal y)
void setVisible (bool visible)
void setX (qreal x)
void setY (qreal y)
void setZValue (qreal z)
virtual QPainterPath shape () const
void show ()
void stackBefore (const QGraphicsItem *graphicsItem)
QGraphicsObjecttoGraphicsObject ()
const QGraphicsObjecttoGraphicsObject () const
QString toolTip () const
QGraphicsItem * topLevelItem () const
QGraphicsWidgettopLevelWidget () const
QTransform transform () const
QList< QGraphicsTransform * > transformations () const
QPointF transformOriginPoint () const
virtual int type () const
void ungrabKeyboard ()
void ungrabMouse ()
void unsetCursor ()
void update (const QRectF &rectF=QRectF ())
void update (qreal x, qreal y, qreal width, qreal height)
QGraphicsWidgetwindow () const
qreal x () const
qreal y () const
qreal zValue () const
- Public Methods inherited from QGraphicsLayoutItem
 QGraphicsLayoutItem (QGraphicsLayoutItem *parent=nullptr, bool isLayout=false)
virtual ~QGraphicsLayoutItem ()
QRectF contentsRect () const
QSizeF effectiveSizeHint (Qt::SizeHint which, const QSizeF &constraint=QSizeF ()) const
QRectF geometry () const
QGraphicsItemgraphicsItem () const
bool isLayout () const
qreal maximumHeight () const
QSizeF maximumSize () const
qreal maximumWidth () const
qreal minimumHeight () const
QSizeF minimumSize () const
qreal minimumWidth () const
bool ownedByLayout () const
QGraphicsLayoutItem * parentLayoutItem () const
qreal preferredHeight () const
QSizeF preferredSize () const
qreal preferredWidth () const
void setMaximumHeight (qreal height)
void setMaximumSize (const QSizeF &size)
void setMaximumSize (qreal w, qreal h)
void setMaximumWidth (qreal width)
void setMinimumHeight (qreal height)
void setMinimumSize (const QSizeF &size)
void setMinimumSize (qreal w, qreal h)
void setMinimumWidth (qreal width)
void setParentLayoutItem (QGraphicsLayoutItem *parent)
void setPreferredHeight (qreal height)
void setPreferredSize (const QSizeF &size)
void setPreferredSize (qreal w, qreal h)
void setPreferredWidth (qreal width)
void setSizePolicy (const QSizePolicy &policy)
void setSizePolicy (QSizePolicy::Policy hPolicy, QSizePolicy::Policy vPolicy, QSizePolicy::ControlType controlType=QSizePolicy::DefaultType)
QSizePolicy sizePolicy () const

Protected Slots

QGraphicsProxyWidget * newProxyWidget (const QWidget *child)
- Protected Slots inherited from QGraphicsObject
void updateMicroFocus ()

Protected Methods

void contextMenuEvent (QGraphicsSceneContextMenuEvent *event) override
void dragEnterEvent (QGraphicsSceneDragDropEvent *event) override
void dragLeaveEvent (QGraphicsSceneDragDropEvent *event) override
void dragMoveEvent (QGraphicsSceneDragDropEvent *event) override
void dropEvent (QGraphicsSceneDragDropEvent *event) override
bool event (QEvent *event) override
bool eventFilter (QObject *object, QEvent *event) override
void focusInEvent (QFocusEvent *event) override
bool focusNextPrevChild (bool next) override
void focusOutEvent (QFocusEvent *event) override
void grabMouseEvent (QEvent *event) override
void hideEvent (QHideEvent *event) override
void hoverEnterEvent (QGraphicsSceneHoverEvent *event) override
void hoverLeaveEvent (QGraphicsSceneHoverEvent *event) override
void hoverMoveEvent (QGraphicsSceneHoverEvent *event) override
void inputMethodEvent (QInputMethodEvent *event) override
QVariant inputMethodQuery (Qt::InputMethodQuery query) const override
QVariant itemChange (GraphicsItemChange change, const QVariant &value) override
void keyPressEvent (QKeyEvent *event) override
void keyReleaseEvent (QKeyEvent *event) override
void mouseDoubleClickEvent (QGraphicsSceneMouseEvent *event) override
void mouseMoveEvent (QGraphicsSceneMouseEvent *event) override
void mousePressEvent (QGraphicsSceneMouseEvent *event) override
void mouseReleaseEvent (QGraphicsSceneMouseEvent *event) override
void resizeEvent (QGraphicsSceneResizeEvent *event) override
void showEvent (QShowEvent *event) override
QSizeF sizeHint (Qt::SizeHint which, const QSizeF &constraint=QSizeF ()) const override
void ungrabMouseEvent (QEvent *event) override
void wheelEvent (QGraphicsSceneWheelEvent *event) override
- Protected Methods inherited from QGraphicsWidget
virtual void changeEvent (QEvent *event)
virtual void closeEvent (QCloseEvent *event)
bool event (QEvent *event) override
void focusInEvent (QFocusEvent *event) override
void focusOutEvent (QFocusEvent *event) override
virtual void grabKeyboardEvent (QEvent *event)
void hoverLeaveEvent (QGraphicsSceneHoverEvent *event) override
void hoverMoveEvent (QGraphicsSceneHoverEvent *event) override
virtual void initStyleOption (QStyleOption *option) const
QVariant itemChange (QGraphicsItem::GraphicsItemChange change, const QVariant &value) override
virtual void moveEvent (QGraphicsSceneMoveEvent *event)
virtual void polishEvent ()
bool sceneEvent (QEvent *event) override
QSizeF sizeHint (Qt::SizeHint which, const QSizeF &constraint=QSizeF ()) const override
virtual void ungrabKeyboardEvent (QEvent *event)
void updateGeometry () override
virtual bool windowFrameEvent (QEvent *event)
virtual Qt::WindowFrameSection windowFrameSectionAt (const QPointF &pos) const
- Protected Methods inherited from QGraphicsObject
bool event (QEvent *event) override
- Protected Methods inherited from QObject
virtual void childEvent (QChildEvent *event)
virtual void connectNotify (const QMetaMethod &signalMethod) const
virtual void customEvent (QEvent *event)
virtual void disconnectNotify (const QMetaMethod &signalMethod) const
bool isSignalConnected (const QMetaMethod &signalMethod) const
int receivers (const QString &signal) const
QObject * sender () const
int senderSignalIndex () const
virtual void timerEvent (QTimerEvent *event)
- Protected Methods inherited from QGraphicsItem
virtual void contextMenuEvent (QGraphicsSceneContextMenuEvent *event)
virtual void dragEnterEvent (QGraphicsSceneDragDropEvent *event)
virtual void dragLeaveEvent (QGraphicsSceneDragDropEvent *event)
virtual void dragMoveEvent (QGraphicsSceneDragDropEvent *event)
virtual void dropEvent (QGraphicsSceneDragDropEvent *event)
virtual void focusInEvent (QFocusEvent *event)
virtual void focusOutEvent (QFocusEvent *event)
virtual void hoverEnterEvent (QGraphicsSceneHoverEvent *event)
virtual void hoverLeaveEvent (QGraphicsSceneHoverEvent *event)
virtual void hoverMoveEvent (QGraphicsSceneHoverEvent *event)
virtual void inputMethodEvent (QInputMethodEvent *event)
virtual QVariant inputMethodQuery (Qt::InputMethodQuery query) const
virtual QVariant itemChange (GraphicsItemChange change, const QVariant &value)
virtual void keyPressEvent (QKeyEvent *event)
virtual void keyReleaseEvent (QKeyEvent *event)
virtual void mouseDoubleClickEvent (QGraphicsSceneMouseEvent *event)
virtual void mouseMoveEvent (QGraphicsSceneMouseEvent *event)
virtual void mousePressEvent (QGraphicsSceneMouseEvent *event)
virtual void mouseReleaseEvent (QGraphicsSceneMouseEvent *event)
void prepareGeometryChange ()
virtual bool sceneEvent (QEvent *event)
virtual bool sceneEventFilter (QGraphicsItem *watched, QEvent *event)
void updateMicroFocus ()
virtual void wheelEvent (QGraphicsSceneWheelEvent *event)
- Protected Methods inherited from QGraphicsLayoutItem
void setGraphicsItem (QGraphicsItem *item)
void setOwnedByLayout (bool owner)


class QGraphicsItem
class QWidget

Additional Inherited Members

- Public Typedefs inherited from QGraphicsItem
using GraphicsItemFlags = QFlags< GraphicsItemFlag >
- Public Types inherited from QGraphicsItem
enum  CacheMode
enum  GraphicsItemChange
enum  GraphicsItemFlag
enum  PanelModality
- Public Signals inherited from QGraphicsWidget
void geometryChanged ()
- Public Signals inherited from QGraphicsObject
void enabledChanged ()
void opacityChanged ()
void parentChanged ()
void rotationChanged ()
void scaleChanged ()
void visibleChanged ()
void xChanged ()
void yChanged ()
void zChanged ()
- Public Signals inherited from QObject
void destroyed (QObject *obj=nullptr)
void objectNameChanged (const QString &objectName)
- Public Slots inherited from QGraphicsWidget
bool close ()
- Public Slots inherited from QObject
void deleteLater ()
- Static Public Methods inherited from QGraphicsWidget
static void setTabOrder (QGraphicsWidget *first, QGraphicsWidget *second)
- Static Public Methods inherited from QObject
static bool connect (const QObject *sender, const QMetaMethod &signalMethod, const QObject *receiver, const QMetaMethod &slotMethod, Qt::ConnectionType type=Qt::AutoConnection)
static bool connect (const QObject *sender, const QString &signalMethod, const QObject *receiver, const QString &slotMethod, Qt::ConnectionType type=Qt::AutoConnection, const QString &location=QString ())
static bool connect (const QObject *sender, const QString &signalMethod, const QString &location, const QObject *receiver, const QString &slotMethod, Qt::ConnectionType type=Qt::AutoConnection)
template<class Sender , class SignalClass , class... SignalArgs, class Receiver , class SlotClass , class... SlotArgs, class SlotReturn >
static bool connect (const Sender *sender, void (SignalClass::*signalMethod)(SignalArgs...), const Receiver *receiver, SlotReturn (SlotClass::*slotMethod)(SlotArgs...), Qt::ConnectionType type=Qt::AutoConnection)
template<class Sender , class SignalClass , class... SignalArgs, class Receiver , class T >
static bool connect (const Sender *sender, void (SignalClass::*signalMethod)(SignalArgs...), const Receiver *receiver, T slotLambda, Qt::ConnectionType type=Qt::AutoConnection)
static bool disconnect (const QObject *sender, const QMetaMethod &signalMethod, const QObject *receiver, const QMetaMethod &slotMethod)
static bool disconnect (const QObject *sender, const QString &signalMethod, const QObject *receiver, const QString &slotMethod)
static bool disconnect (const QObject *sender, const QString &signalMethod, const QString &location, const QObject *receiver, const QString &slotMethod)
static bool disconnect (const QObject *sender, std::nullptr_t, const QObject *receiver, std::nullptr_t)
template<class Sender , class SignalClass , class... SignalArgs, class Receiver , class SlotClass , class... SlotArgs, class SlotReturn >
static bool disconnect (const Sender *sender, void (SignalClass::*signalMethod)(SignalArgs...), const Receiver *receiver, SlotReturn (SlotClass::*slotMethod)(SlotArgs...))
template<class Sender , class SignalClass , class... SignalArgs, class Receiver >
static bool disconnect (const Sender *sender, void (SignalClass::*signalMethod)(SignalArgs...), const Receiver *receiver, std::nullptr_t slotMethod=nullptr)
template<class Sender , class SignalClass , class... SignalArgs, class Receiver , class T >
static bool disconnect (const Sender *sender, void (SignalClass::*signalMethod)(SignalArgs...), const Receiver *receiver, T slotMethod)
static QMetaObjectstaticMetaObject ()
static QString tr (const char *text, const char *comment=nullptr, std::optional< int > numArg=std::optional< int >())
- Static Public Members inherited from QGraphicsItem
static constexpr const int UserType = 65536
- Properties inherited from QGraphicsWidget
- Properties inherited from QGraphicsObject
- Properties inherited from QObject

Detailed Description

The QGraphicsProxyWidget class provides a proxy layer for embedding a QWidget in a QGraphicsScene.

QGraphicsProxyWidget embeds QWidget-based widgets, for example, a QPushButton, QFontComboBox, or even QFileDialog, into QGraphicsScene. It forwards events between the two objects and translates between QWidget's integer-based geometry and QGraphicsWidget's qreal-based geometry. QGraphicsProxyWidget supports all core features of QWidget, including tab focus, keyboard input, Drag & Drop, and popups. You can also embed complex widgets with subwidgets.

int main(int argc, char **argv) {
QApplication app(argc, argv);
QTabWidget *tabWidget = new QTabWidget;
QGraphicsProxyWidget *proxy = scene.addWidget(tabWidget);;
return app.exec();

QGraphicsProxyWidget takes care of automatically embedding popup children of embedded widgets through creating a child proxy for each popup. This means that when an embedded QComboBox shows its popup list, a new QGraphicsProxyWidget is created automatically, embedding the popup, and positioning it correctly. This only works if the popup is child of the embedded widget (for example QToolButton::setMenu() requires the QMenu instance to be child of the QToolButton).

Embedding a Widget with QGraphicsProxyWidget

There are two ways to embed a widget using QGraphicsProxyWidget. The most common way is to pass a widget pointer to QGraphicsScene::addWidget() together with any relevant Qt::WindowFlags. This function returns a pointer to a QGraphicsProxyWidget. You can then choose to reparent or position either the proxy, or the embedded widget itself.

For example, in the code below we embed a group box into the proxy.

QGroupBox *groupBox = new QGroupBox("Contact Details");
QLabel *numberLabel = new QLabel("Telephone number");
QLineEdit *numberEdit = new QLineEdit;
layout->addRow(numberLabel, numberEdit);

The image below is the output obtained with its contents margin and contents rect labeled.

Alternatively, you can start by creating a new QGraphicsProxyWidget item, and then call setWidget() to embed a QWidget later. The widget() function returns a pointer to the embedded widget. QGraphicsProxyWidget shares ownership with QWidget, so if either of the two widgets are destroyed, the other widget will be automatically destroyed as well.

Synchronizing Widget States

QGraphicsProxyWidget keeps its state in sync with the embedded widget. For example, if the proxy is hidden or disabled, the embedded widget will be hidden or disabled as well, and vice versa. When the widget is embedded by calling addWidget(), QGraphicsProxyWidget copies the state from the widget into the proxy, and after that, the two will stay synchronized where possible. By default, when you embed a widget into a proxy, both the widget and the proxy will be visible because a QGraphicsWidget is visible when created (you do not have to call show()). If you explicitly hide the embedded widget, the proxy will also become invisible.

QLineEdit *edit = new QLineEdit;
edit->isVisible(); // returns true
proxy->isVisible(); // also returns true
edit->isVisible(); // returns false
proxy->isVisible(); // also returns false

QGraphicsProxyWidget maintains symmetry for the following states.

QWidget PropertyQGraphicsProxyWidget PropertyNotes
QWidget::visibleQGraphicsProxyWidget::visible The explicit state is also symmetric.
QWidget::geometryQGraphicsProxyWidget::geometry Geometry is only guaranteed to be symmetric while the embedded widget is visible.
QWidget::cursorQGraphicsProxyWidget::cursor The embedded widget overrides the proxy widget cursor. The proxy cursor changes depending on which embedded subwidget is currently under the mouse.
QWidget::sizeHint()QGraphicsProxyWidget::sizeHint() All size hint functionality from the embedded widget is forwarded by the proxy.
QWidget::getContentsMargins()QGraphicsProxyWidget::getContentsMargins() Updated once by setWidget().
QWidget::windowTitleQGraphicsProxyWidget::windowTitle Updated once by setWidget().
See also
QGraphicsScene::addWidget(), QGraphicsWidget

Constructor & Destructor Documentation

QGraphicsProxyWidget::QGraphicsProxyWidget ( QGraphicsItem parent = nullptr,
Qt::WindowFlags  flags = Qt::EmptyFlag 

Constructs a new QGraphicsProxy widget. The values for parent and flags are passed to the QGraphicsItem constructor.

QGraphicsProxyWidget::~QGraphicsProxyWidget ( )

Destroys the proxy widget and any embedded widgets.

Method Documentation

void QGraphicsProxyWidget::contextMenuEvent ( QGraphicsSceneContextMenuEvent event)
QGraphicsProxyWidget * QGraphicsProxyWidget::createProxyForChildWidget ( QWidget child)

Creates a proxy widget for the given child of the widget contained in this QGraphicsProxyWidget. If the widget is already embedded this method returns the existing QGraphicsProxyWidget.

This method is used to acquire proxies for non top-level widgets. For instance, you can embed a dialog, and then transform only one of its widgets.

See also
newProxyWidget(), QGraphicsScene::addWidget()
void QGraphicsProxyWidget::dragEnterEvent ( QGraphicsSceneDragDropEvent event)

Reimplemented from QGraphicsItem::dragEnterEvent()

void QGraphicsProxyWidget::dragLeaveEvent ( QGraphicsSceneDragDropEvent event)

Reimplemented from QGraphicsItem::dragLeaveEvent()

void QGraphicsProxyWidget::dragMoveEvent ( QGraphicsSceneDragDropEvent event)

Reimplemented from QGraphicsItem::dragMoveEvent()

void QGraphicsProxyWidget::dropEvent ( QGraphicsSceneDragDropEvent event)

Reimplemented from QGraphicsItem::dropEvent()

bool QGraphicsProxyWidget::event ( QEvent event)

Reimplemented from QGraphicsWidget::event()

bool QGraphicsProxyWidget::eventFilter ( QObject object,
QEvent event 

Reimplemented from QObject::eventFilter()

void QGraphicsProxyWidget::focusInEvent ( QFocusEvent event)

Reimplemented from QGraphicsWidget::focusInEvent()

bool QGraphicsProxyWidget::focusNextPrevChild ( bool  next)
void QGraphicsProxyWidget::focusOutEvent ( QFocusEvent event)
void QGraphicsProxyWidget::grabMouseEvent ( QEvent event)
void QGraphicsProxyWidget::hideEvent ( QHideEvent event)

Reimplemented from QGraphicsWidget::hideEvent()

void QGraphicsProxyWidget::hoverEnterEvent ( QGraphicsSceneHoverEvent event)
void QGraphicsProxyWidget::hoverLeaveEvent ( QGraphicsSceneHoverEvent event)
void QGraphicsProxyWidget::hoverMoveEvent ( QGraphicsSceneHoverEvent event)
void QGraphicsProxyWidget::inputMethodEvent ( QInputMethodEvent event)
QVariant QGraphicsProxyWidget::inputMethodQuery ( Qt::InputMethodQuery  query) const
QVariant QGraphicsProxyWidget::itemChange ( GraphicsItemChange  change,
const QVariant value 

Reimplemented from QGraphicsWidget::itemChange()

void QGraphicsProxyWidget::keyPressEvent ( QKeyEvent event)

Reimplemented from QGraphicsItem::keyPressEvent()

void QGraphicsProxyWidget::keyReleaseEvent ( QKeyEvent event)
void QGraphicsProxyWidget::mouseDoubleClickEvent ( QGraphicsSceneMouseEvent event)
void QGraphicsProxyWidget::mouseMoveEvent ( QGraphicsSceneMouseEvent event)

Reimplemented from QGraphicsItem::mouseMoveEvent()

void QGraphicsProxyWidget::mousePressEvent ( QGraphicsSceneMouseEvent event)
void QGraphicsProxyWidget::mouseReleaseEvent ( QGraphicsSceneMouseEvent event)
QGraphicsProxyWidget * QGraphicsProxyWidget::newProxyWidget ( const QWidget child)

Creates a proxy widget for the given child of the widget contained in this proxy. You should not call this method directly, use QGraphicsProxyWidget::createProxyForChildWidget() instead.

This method is a virtual slot that you can reimplement in your subclass in order to control how new proxy widgets are created. The default implementation returns a proxy created with the QGraphicsProxyWidget() constructor with this proxy widget as the parent.

See also
void QGraphicsProxyWidget::paint ( QPainter painter,
const QStyleOptionGraphicsItem option,
QWidget widget 

Reimplemented from QGraphicsWidget::paint()

void QGraphicsProxyWidget::resizeEvent ( QGraphicsSceneResizeEvent event)

Reimplemented from QGraphicsWidget::resizeEvent()

void QGraphicsProxyWidget::setGeometry ( const QRectF rect)
void QGraphicsProxyWidget::setWidget ( QWidget widget)

Inserts the widget into the current QGraphicsProxyWidget. The widget must reside exclusively either inside or outside of the Graphics View system. You can not insert a widget which is visible some where else in the UI. The widget must be a top level widget whose parent is a nullptr.

When the widget is inserted its state is copied into the current QGraphicsProxyWidget. If the widget is explicitly hidden or disabled, the proxy widget will become explicitly hidden or disabled. If a widget has already been inserted into the current QGraphicsProxyWidget, it will be removed. This will occur even if a nullptr is passed for the widget parameter.

Every child of widget will also be managed by the current QGraphicsProxyWidget. The QGraphicsProxyWidget window flags determine whether the widget will be given window decorations or not. The widgets with the Qt::WA_PaintOnScreen attribute and widgets that wrap an external application or controller can not be embedded. An example would be QGLWidget.

See also
void QGraphicsProxyWidget::showEvent ( QShowEvent event)

Reimplemented from QGraphicsWidget::showEvent()

QSizeF QGraphicsProxyWidget::sizeHint ( Qt::SizeHint  which,
const QSizeF constraint = QSizeF() 
) const
QRectF QGraphicsProxyWidget::subWidgetRect ( const QWidget widget) const

Returns the rectangle for widget, which must be a descendant of widget(), or widget() itself, in this proxy item's local coordinates. The method will return an empty QRectF under any of the following conditions.

  • Current QGraphicsProxyWidget does not contain a widget
  • Parameter widget is a nullptr
  • Parameter widget is not a child of the widget contained in the current QGraphicsProxyWidget
See also
int QGraphicsProxyWidget::type ( ) const

Reimplemented from QGraphicsWidget::type()

void QGraphicsProxyWidget::ungrabMouseEvent ( QEvent event)
void QGraphicsProxyWidget::wheelEvent ( QGraphicsSceneWheelEvent event)

Reimplemented from QGraphicsItem::wheelEvent()

QWidget * QGraphicsProxyWidget::widget ( ) const

Returns a pointer to a widget which was set by the user.