CopperSpice API  1.7.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 (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 &objName=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 (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 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)
 

Friends

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)
 
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 >())
 
- Properties inherited from QGraphicsWidget
 autoFillBackground
 
 focusPolicy
 
 font
 
 geometry
 
 layout
 
 layoutDirection
 
 maximumSize
 
 minimumSize
 
 palette
 
 preferredSize
 
 size
 
 sizePolicy
 
 windowFlags
 
 windowTitle
 
- Properties inherited from QGraphicsObject
 effect
 
 enabled
 
 opacity
 
 parent
 
 pos
 
 rotation
 
 scale
 
 transformOriginPoint
 
 visible
 
 x
 
 y
 
 z
 
- Properties inherited from QObject
 objectName
 

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);
view.show();
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);
groupBox->setLayout(layout);
view.show();

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->hide();
edit->isVisible(); // returns false
proxy->isVisible(); // also returns false

QGraphicsProxyWidget maintains symmetry for the following states:

QWidget stateQGraphicsProxyWidget stateNotes
QWidget::enabledQGraphicsProxyWidget::enabled
QWidget::visibleQGraphicsProxyWidget::visibleThe explicit state is also symmetric.
QWidget::geometryQGraphicsProxyWidget::geometry Geometry is only guaranteed to be symmetric while the embedded widget is visible.
QWidget::layoutDirectionQGraphicsProxyWidget::layoutDirection
QWidget::styleQGraphicsProxyWidget::style
QWidget::paletteQGraphicsProxyWidget::palette
QWidget::fontQGraphicsProxyWidget::font
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::windowTitleUpdated once by setWidget().
Note
QGraphicsScene keeps the embedded widget in a special state that prevents it from disturbing other widgets (both embedded and not embedded) while the widget is embedded. In this state, the widget may differ slightly in behavior from when it is not embedded.
Warning
This class is provided for convenience when bridging QWidgets and QGraphicsItems, it should not be used for high-performance scenarios.
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)
overrideprotected

Reimplemented from QGraphicsItem::contextMenuEvent().

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)
overrideprotected

Reimplemented from QGraphicsItem::dragEnterEvent().

void QGraphicsProxyWidget::dragLeaveEvent ( QGraphicsSceneDragDropEvent event)
overrideprotected

Reimplemented from QGraphicsItem::dragLeaveEvent().

void QGraphicsProxyWidget::dragMoveEvent ( QGraphicsSceneDragDropEvent event)
overrideprotected

Reimplemented from QGraphicsItem::dragMoveEvent().

void QGraphicsProxyWidget::dropEvent ( QGraphicsSceneDragDropEvent event)
overrideprotected

Reimplemented from QGraphicsItem::dropEvent().

bool QGraphicsProxyWidget::event ( QEvent event)
overrideprotected

Reimplemented from QObject::event().

bool QGraphicsProxyWidget::eventFilter ( QObject object,
QEvent event 
)
overrideprotected

Reimplemented from QObject::eventFilter().

void QGraphicsProxyWidget::focusInEvent ( QFocusEvent event)
overrideprotected

Reimplemented from QGraphicsItem::focusInEvent().

bool QGraphicsProxyWidget::focusNextPrevChild ( bool  next)
overrideprotectedvirtual

Reimplemented from QGraphicsWidget::focusNextPrevChild().

Reimplemented from QGraphicsWidget.

void QGraphicsProxyWidget::focusOutEvent ( QFocusEvent event)
overrideprotected

Reimplemented from QGraphicsItem::focusOutEvent().

void QGraphicsProxyWidget::grabMouseEvent ( QEvent event)
overrideprotectedvirtual

Reimplemented from QGraphicsWidget::grabMouseEvent().

Reimplemented from QGraphicsWidget.

void QGraphicsProxyWidget::hideEvent ( QHideEvent event)
overrideprotectedvirtual

Reimplemented from QGraphicsWidget::hideEvent().

Reimplemented from QGraphicsWidget.

void QGraphicsProxyWidget::hoverEnterEvent ( QGraphicsSceneHoverEvent event)
overrideprotected

Reimplemented from QGraphicsItem::hoverEnterEvent().

void QGraphicsProxyWidget::hoverLeaveEvent ( QGraphicsSceneHoverEvent event)
overrideprotected

Reimplemented from QGraphicsItem::hoverLeaveEvent().

void QGraphicsProxyWidget::hoverMoveEvent ( QGraphicsSceneHoverEvent event)
overrideprotected

Reimplemented from QGraphicsItem::hoverMoveEvent().

void QGraphicsProxyWidget::inputMethodEvent ( QInputMethodEvent event)
overrideprotected

Reimplemented from QGraphicsItem::inputMethodEvent().

QVariant QGraphicsProxyWidget::inputMethodQuery ( Qt::InputMethodQuery  query) const
overrideprotected

Reimplemented from QGraphicsItem::inputMethodQuery().

QVariant QGraphicsProxyWidget::itemChange ( GraphicsItemChange  change,
const QVariant value 
)
overrideprotected

Reimplemented from QGraphicsItem::itemChange().

void QGraphicsProxyWidget::keyPressEvent ( QKeyEvent event)
overrideprotected

Reimplemented from QGraphicsItem::keyPressEvent().

void QGraphicsProxyWidget::keyReleaseEvent ( QKeyEvent event)
overrideprotected

Reimplemented from QGraphicsItem::keyReleaseEvent().

void QGraphicsProxyWidget::mouseDoubleClickEvent ( QGraphicsSceneMouseEvent event)
overrideprotected
void QGraphicsProxyWidget::mouseMoveEvent ( QGraphicsSceneMouseEvent event)
overrideprotected

Reimplemented from QGraphicsItem::mouseMoveEvent().

void QGraphicsProxyWidget::mousePressEvent ( QGraphicsSceneMouseEvent event)
overrideprotected

Reimplemented from QGraphicsItem::mousePressEvent().

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

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
createProxyForChildWidget()
void QGraphicsProxyWidget::paint ( QPainter painter,
const QStyleOptionGraphicsItem option,
QWidget widget 
)
override

Reimplemented from QGraphicsItem::paint().

void QGraphicsProxyWidget::resizeEvent ( QGraphicsSceneResizeEvent event)
overrideprotectedvirtual

Reimplemented from QGraphicsWidget::resizeEvent().

Reimplemented from QGraphicsWidget.

void QGraphicsProxyWidget::setGeometry ( const QRectF rect)
overridevirtual

Reimplemented from QGraphicsLayoutItem::setGeometry().

Reimplemented from QGraphicsLayoutItem.

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
widget()
void QGraphicsProxyWidget::showEvent ( QShowEvent event)
overrideprotectedvirtual

Reimplemented from QGraphicsWidget::showEvent().

Reimplemented from QGraphicsWidget.

QSizeF QGraphicsProxyWidget::sizeHint ( Qt::SizeHint  which,
const QSizeF constraint = QSizeF() 
) const
overrideprotectedvirtual

Reimplemented from QGraphicsLayoutItem::sizeHint().

Implements QGraphicsLayoutItem.

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.

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

Reimplemented from QGraphicsItem::type().

void QGraphicsProxyWidget::ungrabMouseEvent ( QEvent event)
overrideprotectedvirtual

Reimplemented from QGraphicsWidget::ungrabMouseEvent().

Reimplemented from QGraphicsWidget.

void QGraphicsProxyWidget::wheelEvent ( QGraphicsSceneWheelEvent event)
overrideprotected

Reimplemented from QGraphicsItem::wheelEvent().

QWidget * QGraphicsProxyWidget::widget ( ) const

Returns a pointer to the embedded widget.

See also
setWidget()