32class Q_WIDGETS_EXPORT
QGraphicsWidget :
public QGraphicsObject,
public QGraphicsLayoutItem
35 Q_INTERFACES(QGraphicsItem QGraphicsLayoutItem)
36 Q_PROPERTY(QPalette palette READ palette WRITE setPalette)
37 Q_PROPERTY(QFont font READ font WRITE setFont)
38 Q_PROPERTY(Qt::LayoutDirection layoutDirection READ layoutDirection WRITE setLayoutDirection
39 RESET unsetLayoutDirection)
40 Q_PROPERTY(QSizeF size READ size WRITE resize NOTIFY geometryChanged)
41 Q_PROPERTY(QSizeF minimumSize READ minimumSize WRITE setMinimumSize)
42 Q_PROPERTY(QSizeF preferredSize READ preferredSize WRITE setPreferredSize)
43 Q_PROPERTY(QSizeF maximumSize READ maximumSize WRITE setMaximumSize)
44 Q_PROPERTY(QSizePolicy sizePolicy READ sizePolicy WRITE setSizePolicy)
45 Q_PROPERTY(Qt::FocusPolicy focusPolicy READ focusPolicy WRITE setFocusPolicy)
46 Q_PROPERTY(Qt::WindowFlags windowFlags READ windowFlags WRITE setWindowFlags)
47 Q_PROPERTY(QString windowTitle READ windowTitle WRITE setWindowTitle)
48 Q_PROPERTY(QRectF geometry READ geometry WRITE setGeometry NOTIFY geometryChanged)
49 Q_PROPERTY(
bool autoFillBackground READ autoFillBackground WRITE setAutoFillBackground)
50 Q_PROPERTY(QGraphicsLayout* layout READ layout WRITE setLayout NOTIFY layoutChanged)
52 QGraphicsWidget(QGraphicsItem *parent =
nullptr, Qt::WindowFlags wFlags = Qt::WindowFlags());
54 QGraphicsLayout *layout()
const;
55 void setLayout(QGraphicsLayout *layout);
58 Qt::LayoutDirection layoutDirection()
const;
59 void setLayoutDirection(Qt::LayoutDirection direction);
60 void unsetLayoutDirection();
62 QStyle *style()
const;
63 void setStyle(QStyle *style);
66 void setFont(
const QFont &font);
68 QPalette palette()
const;
69 void setPalette(
const QPalette &palette);
71 bool autoFillBackground()
const;
72 void setAutoFillBackground(
bool enabled);
74 void resize(
const QSizeF &size);
75 inline void resize(qreal w, qreal h) { resize(QSizeF(w, h)); }
78 void setGeometry(
const QRectF &rect) override;
79 inline void setGeometry(qreal x, qreal y, qreal w, qreal h);
80 inline QRectF rect()
const {
return QRectF(QPointF(), size()); }
82 void setContentsMargins(qreal left, qreal top, qreal right, qreal bottom);
83 void setContentsMargins(QMarginsF margins);
84 void getContentsMargins(qreal *left, qreal *top, qreal *right, qreal *bottom)
const override;
86 void setWindowFrameMargins(qreal left, qreal top, qreal right, qreal bottom);
87 void setWindowFrameMargins(QMarginsF margins);
88 void getWindowFrameMargins(qreal *left, qreal *top, qreal *right, qreal *bottom)
const;
89 void unsetWindowFrameMargins();
90 QRectF windowFrameGeometry()
const;
91 QRectF windowFrameRect()
const;
94 Qt::WindowFlags windowFlags()
const;
95 Qt::WindowType windowType()
const;
96 void setWindowFlags(Qt::WindowFlags wFlags);
97 bool isActiveWindow()
const;
98 void setWindowTitle(
const QString &title);
99 QString windowTitle()
const;
102 Qt::FocusPolicy focusPolicy()
const;
103 void setFocusPolicy(Qt::FocusPolicy policy);
104 static void setTabOrder(QGraphicsWidget *first, QGraphicsWidget *second);
105 QGraphicsWidget *focusWidget()
const;
107#ifndef QT_NO_SHORTCUT
108 int grabShortcut(
const QKeySequence &sequence, Qt::ShortcutContext context = Qt::WindowShortcut);
109 void releaseShortcut(
int id);
110 void setShortcutEnabled(
int id,
bool enabled =
true);
111 void setShortcutAutoRepeat(
int id,
bool enabled =
true);
116 void addAction(QAction *action);
117 void addActions(
const QList<QAction*> &actions);
118 void insertActions(QAction *before,
const QList<QAction*> &actions);
119 void insertAction(QAction *before, QAction *action);
120 void removeAction(QAction *action);
121 QList<QAction*> actions()
const;
124 void setAttribute(Qt::WidgetAttribute attribute,
bool on =
true);
125 bool testAttribute(Qt::WidgetAttribute attribute)
const;
130 int type()
const override;
132 void paint(QPainter *painter,
const QStyleOptionGraphicsItem *option, QWidget *widget =
nullptr) override;
133 virtual void paintWindowFrame(QPainter *painter,
const QStyleOptionGraphicsItem *option, QWidget *widget =
nullptr);
134 QRectF boundingRect()
const override;
135 QPainterPath shape()
const override;
138 void dumpFocusChain();
141 using QObject::children;
144 void geometryChanged();
145 void layoutChanged();
151 virtual void initStyleOption(QStyleOption *option)
const;
153 QSizeF sizeHint(Qt::SizeHint which,
const QSizeF &constraint = QSizeF())
const override;
154 void updateGeometry() override;
157 QVariant itemChange(GraphicsItemChange change,
const QVariant &value) override;
158 virtual QVariant propertyChange(
const QString &propertyName,
const QVariant &value);
161 bool sceneEvent(QEvent *event) override;
162 virtual bool windowFrameEvent(QEvent *e);
163 virtual Qt::WindowFrameSection windowFrameSectionAt(
const QPointF& pos)
const;
166 bool event(QEvent *event) override;
168 virtual void changeEvent(QEvent *event);
169 virtual void closeEvent(QCloseEvent *event);
172 void focusInEvent(QFocusEvent *event) override;
173 virtual bool focusNextPrevChild(
bool next);
174 void focusOutEvent(QFocusEvent *event) override;
175 virtual void hideEvent(QHideEvent *event);
177 virtual void moveEvent(QGraphicsSceneMoveEvent *event);
178 virtual void polishEvent();
180 virtual void resizeEvent(QGraphicsSceneResizeEvent *event);
181 virtual void showEvent(QShowEvent *event);
183 virtual void hoverMoveEvent(QGraphicsSceneHoverEvent *event) override;
184 virtual void hoverLeaveEvent(QGraphicsSceneHoverEvent *event) override;
185 virtual void grabMouseEvent(QEvent *event);
186 virtual void ungrabMouseEvent(QEvent *event);
187 virtual void grabKeyboardEvent(QEvent *event);
188 virtual void ungrabKeyboardEvent(QEvent *event);
189 QGraphicsWidget(QGraphicsWidgetPrivate &, QGraphicsItem *parent, Qt::WindowFlags wFlags = Qt::WindowFlags());
192 Q_DISABLE_COPY(QGraphicsWidget)
193 Q_DECLARE_PRIVATE_D(QGraphicsItem::d_ptr.data(), QGraphicsWidget)
194 friend class QGraphicsScene;
195 friend class QGraphicsScenePrivate;
196 friend class QGraphicsView;
197 friend class QGraphicsItem;
198 friend class QGraphicsItemPrivate;
199 friend class QGraphicsLayout;
200 friend class QWidget;
201 friend class QApplication;