The QGraphicsProxyWidget class provides a proxy layer for embedding a QWidget in a QGraphicsScene.
More...
|
| 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 |
|
QWidget * | widget () const |
|
| 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 |
|
QGraphicsLayout * | layout () 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 |
|
QStyle * | style () 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 |
|
| QGraphicsObject (QGraphicsItem *parent=nullptr) |
|
const QList< QObject * > & | children () const |
|
void | grabGesture (Qt::GestureType gesture, Qt::GestureFlags flags=Qt::GestureFlags ()) |
|
void | ungrabGesture (Qt::GestureType gesture) |
|
| 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< QString > | dynamicPropertyNames () const |
|
virtual bool | event (QEvent *event) |
|
virtual bool | eventFilter (QObject *watched, QEvent *event) |
|
template<typename T > |
T | findChild (const QString &childName=QString ()) const |
|
template<class T > |
QList< T > | findChildren (const QRegularExpression ®Exp, 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 QMetaObject * | metaObject () const |
|
void | moveToThread (QThread *targetThread) |
|
QString | objectName () const |
|
QObject * | parent () const |
|
template<class T = QVariant> |
T | 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) |
|
QThread * | thread () const |
|
| 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 () |
|
QGraphicsEffect * | graphicsEffect () const |
|
QGraphicsItemGroup * | group () 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 |
|
QGraphicsObject * | parentObject () const |
|
QGraphicsWidget * | parentWidget () const |
|
QPointF | pos () const |
|
void | removeSceneEventFilter (QGraphicsItem *filterItem) |
|
void | resetMatrix () |
|
void | resetTransform () |
|
qreal | rotation () const |
|
qreal | scale () const |
|
QGraphicsScene * | scene () 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) |
|
QGraphicsObject * | toGraphicsObject () |
|
const QGraphicsObject * | toGraphicsObject () const |
|
QString | toolTip () const |
|
QGraphicsItem * | topLevelItem () const |
|
QGraphicsWidget * | topLevelWidget () 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) |
|
QGraphicsWidget * | window () const |
|
qreal | x () const |
|
qreal | y () const |
|
qreal | zValue () const |
|
| 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 |
|
QGraphicsItem * | graphicsItem () 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 |
|
|
using | GraphicsItemFlags = QFlags< GraphicsItemFlag > |
|
enum | CacheMode |
|
enum | GraphicsItemChange |
|
enum | GraphicsItemFlag |
|
enum | PanelModality |
|
void | geometryChanged () |
|
void | enabledChanged () |
|
void | opacityChanged () |
|
void | parentChanged () |
|
void | rotationChanged () |
|
void | scaleChanged () |
|
void | visibleChanged () |
|
void | xChanged () |
|
void | yChanged () |
|
void | zChanged () |
|
void | destroyed (QObject *obj=nullptr) |
|
void | objectNameChanged (const QString &objectName) |
|
bool | close () |
|
void | deleteLater () |
|
static void | setTabOrder (QGraphicsWidget *first, QGraphicsWidget *second) |
|
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 QMetaObject & | staticMetaObject () |
|
static QString | tr (const char *text, const char *comment=nullptr, std::optional< int > numArg=std::optional< int >()) |
|
static constexpr const int | UserType = 65536 |
|
| autoFillBackground |
|
| focusPolicy |
|
| font |
|
| geometry |
|
| layout |
|
| layoutDirection |
|
| maximumSize |
|
| minimumSize |
|
| palette |
|
| preferredSize |
|
| size |
|
| sizePolicy |
|
| windowFlags |
|
| windowTitle |
|
| effect |
|
| enabled |
|
| opacity |
|
| parent |
|
| pos |
|
| rotation |
|
| scale |
|
| transformOriginPoint |
|
| visible |
|
| x |
|
| y |
|
| z |
|
| objectName |
|
T | qobject_cast (QObject *object) |
|
| QObjectList |
|
T | qgraphicsitem_cast (QGraphicsItem *item) |
|
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) {
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.
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.
QGraphicsProxyWidget maintains symmetry for the following states.
- See also
- QGraphicsScene::addWidget(), QGraphicsWidget