49 enum GraphicsItemFlag {
51 ItemIsSelectable = 0x2,
52 ItemIsFocusable = 0x4,
53 ItemClipsToShape = 0x8,
54 ItemClipsChildrenToShape = 0x10,
55 ItemIgnoresTransformations = 0x20,
56 ItemIgnoresParentOpacity = 0x40,
57 ItemDoesntPropagateOpacityToChildren = 0x80,
58 ItemStacksBehindParent = 0x100,
59 ItemUsesExtendedStyleOption = 0x200,
60 ItemHasNoContents = 0x400,
61 ItemSendsGeometryChanges = 0x800,
62 ItemAcceptsInputMethod = 0x1000,
63 ItemNegativeZStacksBehindParent = 0x2000,
65 ItemIsFocusScope = 0x8000,
66 ItemSendsScenePositionChanges = 0x10000,
67 ItemStopsClickFocusPropagation = 0x20000,
68 ItemStopsFocusHandling = 0x40000,
69 ItemContainsChildrenInShape = 0x80000
72 Q_DECLARE_FLAGS(GraphicsItemFlags, GraphicsItemFlag)
74 enum GraphicsItemChange {
76 ItemVisibleChange = 2,
81 ItemChildRemovedChange,
83 ItemPositionHasChanged,
84 ItemTransformHasChanged,
86 ItemVisibleHasChanged,
87 ItemEnabledHasChanged,
88 ItemSelectedHasChanged,
94 ItemToolTipHasChanged,
100 ItemOpacityHasChanged,
101 ItemScenePositionHasChanged,
103 ItemRotationHasChanged,
106 ItemTransformOriginPointChange,
107 ItemTransformOriginPointHasChanged
113 DeviceCoordinateCache
123 explicit QGraphicsItem(QGraphicsItem *parent =
nullptr);
124 virtual ~QGraphicsItem();
126 QGraphicsScene *scene()
const;
128 QGraphicsItem *parentItem()
const;
129 QGraphicsItem *topLevelItem()
const;
130 QGraphicsObject *parentObject()
const;
131 QGraphicsWidget *parentWidget()
const;
132 QGraphicsWidget *topLevelWidget()
const;
133 QGraphicsWidget *window()
const;
134 QGraphicsItem *panel()
const;
135 void setParentItem(QGraphicsItem *parent);
136 QList<QGraphicsItem *> childItems()
const;
137 bool isWidget()
const;
138 bool isWindow()
const;
139 bool isPanel()
const;
141 QGraphicsObject *toGraphicsObject();
142 const QGraphicsObject *toGraphicsObject()
const;
144 QGraphicsItemGroup *group()
const;
145 void setGroup(QGraphicsItemGroup *group);
147 GraphicsItemFlags flags()
const;
148 void setFlag(GraphicsItemFlag flag,
bool enabled =
true);
149 void setFlags(GraphicsItemFlags flags);
151 CacheMode cacheMode()
const;
152 void setCacheMode(CacheMode mode,
const QSize &cacheSize = QSize());
154 PanelModality panelModality()
const;
155 void setPanelModality(PanelModality panelModality);
156 bool isBlockedByModalPanel(QGraphicsItem **blockingPanel =
nullptr)
const;
158#if QT_CONFIG(tooltip)
159 QString toolTip()
const;
160 void setToolTip(
const QString &toolTip);
164 QCursor cursor()
const;
165 void setCursor(
const QCursor &cursor);
166 bool hasCursor()
const;
170 bool isVisible()
const;
171 bool isVisibleTo(
const QGraphicsItem *parent)
const;
172 void setVisible(
bool visible);
173 inline void hide() { setVisible(
false); }
174 inline void show() { setVisible(
true); }
176 bool isEnabled()
const;
177 void setEnabled(
bool enabled);
179 bool isSelected()
const;
180 void setSelected(
bool selected);
182 bool acceptDrops()
const;
183 void setAcceptDrops(
bool on);
185 qreal opacity()
const;
186 qreal effectiveOpacity()
const;
187 void setOpacity(qreal opacity);
189#if QT_CONFIG(graphicseffect)
191 QGraphicsEffect *graphicsEffect()
const;
192 void setGraphicsEffect(QGraphicsEffect *effect);
195 Qt::MouseButtons acceptedMouseButtons()
const;
196 void setAcceptedMouseButtons(Qt::MouseButtons buttons);
197 bool acceptHoverEvents()
const;
198 void setAcceptHoverEvents(
bool enabled);
199 bool acceptTouchEvents()
const;
200 void setAcceptTouchEvents(
bool enabled);
202 bool filtersChildEvents()
const;
203 void setFiltersChildEvents(
bool enabled);
205 bool handlesChildEvents()
const;
206 void setHandlesChildEvents(
bool enabled);
208 bool isActive()
const;
209 void setActive(
bool active);
211 bool hasFocus()
const;
212 void setFocus(Qt::FocusReason focusReason = Qt::OtherFocusReason);
215 QGraphicsItem *focusProxy()
const;
216 void setFocusProxy(QGraphicsItem *item);
218 QGraphicsItem *focusItem()
const;
219 QGraphicsItem *focusScopeItem()
const;
224 void ungrabKeyboard();
228 inline qreal x()
const {
return pos().x(); }
230 inline qreal y()
const {
return pos().y(); }
232 QPointF scenePos()
const;
233 void setPos(
const QPointF &pos);
234 inline void setPos(qreal x, qreal y);
235 inline void moveBy(qreal dx, qreal dy) { setPos(pos().x() + dx, pos().y() + dy); }
237 void ensureVisible(
const QRectF &rect = QRectF(),
int xmargin = 50,
int ymargin = 50);
238 inline void ensureVisible(qreal x, qreal y, qreal w, qreal h,
int xmargin = 50,
int ymargin = 50);
241 QTransform transform()
const;
242 QTransform sceneTransform()
const;
243 QTransform deviceTransform(
const QTransform &viewportTransform)
const;
244 QTransform itemTransform(
const QGraphicsItem *other,
bool *ok =
nullptr)
const;
245 void setTransform(
const QTransform &matrix,
bool combine =
false);
246 void resetTransform();
247 void setRotation(qreal angle);
248 qreal rotation()
const;
250 void setScale(qreal scale);
253 QList<QGraphicsTransform *> transformations()
const;
254 void setTransformations(
const QList<QGraphicsTransform *> &transformations);
256 QPointF transformOriginPoint()
const;
257 void setTransformOriginPoint(
const QPointF &origin);
258 inline void setTransformOriginPoint(qreal ax, qreal ay)
259 { setTransformOriginPoint(QPointF(ax,ay)); }
261 virtual void advance(
int phase);
264 qreal zValue()
const;
265 void setZValue(qreal z);
266 void stackBefore(
const QGraphicsItem *sibling);
269 virtual QRectF boundingRect()
const = 0;
270 QRectF childrenBoundingRect()
const;
271 QRectF sceneBoundingRect()
const;
272 virtual QPainterPath shape()
const;
273 bool isClipped()
const;
274 QPainterPath clipPath()
const;
275 virtual bool contains(
const QPointF &point)
const;
276 virtual bool collidesWithItem(
const QGraphicsItem *other, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape)
const;
277 virtual bool collidesWithPath(
const QPainterPath &path, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape)
const;
278 QList<QGraphicsItem *> collidingItems(Qt::ItemSelectionMode mode = Qt::IntersectsItemShape)
const;
279 bool isObscured(
const QRectF &rect = QRectF())
const;
280 inline bool isObscured(qreal x, qreal y, qreal w, qreal h)
const;
281 virtual bool isObscuredBy(
const QGraphicsItem *item)
const;
282 virtual QPainterPath opaqueArea()
const;
284 QRegion boundingRegion(
const QTransform &itemToDeviceTransform)
const;
285 qreal boundingRegionGranularity()
const;
286 void setBoundingRegionGranularity(qreal granularity);
289 virtual void paint(QPainter *painter,
const QStyleOptionGraphicsItem *option, QWidget *widget =
nullptr) = 0;
290 void update(
const QRectF &rect = QRectF());
291 inline void update(qreal x, qreal y, qreal width, qreal height);
292 void scroll(qreal dx, qreal dy,
const QRectF &rect = QRectF());
295 QPointF mapToItem(
const QGraphicsItem *item,
const QPointF &point)
const;
296 QPointF mapToParent(
const QPointF &point)
const;
297 QPointF mapToScene(
const QPointF &point)
const;
298 QPolygonF mapToItem(
const QGraphicsItem *item,
const QRectF &rect)
const;
299 QPolygonF mapToParent(
const QRectF &rect)
const;
300 QPolygonF mapToScene(
const QRectF &rect)
const;
301 QRectF mapRectToItem(
const QGraphicsItem *item,
const QRectF &rect)
const;
302 QRectF mapRectToParent(
const QRectF &rect)
const;
303 QRectF mapRectToScene(
const QRectF &rect)
const;
304 QPolygonF mapToItem(
const QGraphicsItem *item,
const QPolygonF &polygon)
const;
305 QPolygonF mapToParent(
const QPolygonF &polygon)
const;
306 QPolygonF mapToScene(
const QPolygonF &polygon)
const;
307 QPainterPath mapToItem(
const QGraphicsItem *item,
const QPainterPath &path)
const;
308 QPainterPath mapToParent(
const QPainterPath &path)
const;
309 QPainterPath mapToScene(
const QPainterPath &path)
const;
310 QPointF mapFromItem(
const QGraphicsItem *item,
const QPointF &point)
const;
311 QPointF mapFromParent(
const QPointF &point)
const;
312 QPointF mapFromScene(
const QPointF &point)
const;
313 QPolygonF mapFromItem(
const QGraphicsItem *item,
const QRectF &rect)
const;
314 QPolygonF mapFromParent(
const QRectF &rect)
const;
315 QPolygonF mapFromScene(
const QRectF &rect)
const;
316 QRectF mapRectFromItem(
const QGraphicsItem *item,
const QRectF &rect)
const;
317 QRectF mapRectFromParent(
const QRectF &rect)
const;
318 QRectF mapRectFromScene(
const QRectF &rect)
const;
319 QPolygonF mapFromItem(
const QGraphicsItem *item,
const QPolygonF &polygon)
const;
320 QPolygonF mapFromParent(
const QPolygonF &polygon)
const;
321 QPolygonF mapFromScene(
const QPolygonF &polygon)
const;
322 QPainterPath mapFromItem(
const QGraphicsItem *item,
const QPainterPath &path)
const;
323 QPainterPath mapFromParent(
const QPainterPath &path)
const;
324 QPainterPath mapFromScene(
const QPainterPath &path)
const;
326 inline QPointF mapToItem(
const QGraphicsItem *item, qreal x, qreal y)
const;
327 inline QPointF mapToParent(qreal x, qreal y)
const;
328 inline QPointF mapToScene(qreal x, qreal y)
const;
329 inline QPolygonF mapToItem(
const QGraphicsItem *item, qreal x, qreal y, qreal w, qreal h)
const;
330 inline QPolygonF mapToParent(qreal x, qreal y, qreal w, qreal h)
const;
331 inline QPolygonF mapToScene(qreal x, qreal y, qreal w, qreal h)
const;
332 inline QRectF mapRectToItem(
const QGraphicsItem *item, qreal x, qreal y, qreal w, qreal h)
const;
333 inline QRectF mapRectToParent(qreal x, qreal y, qreal w, qreal h)
const;
334 inline QRectF mapRectToScene(qreal x, qreal y, qreal w, qreal h)
const;
335 inline QPointF mapFromItem(
const QGraphicsItem *item, qreal x, qreal y)
const;
336 inline QPointF mapFromParent(qreal x, qreal y)
const;
337 inline QPointF mapFromScene(qreal x, qreal y)
const;
338 inline QPolygonF mapFromItem(
const QGraphicsItem *item, qreal x, qreal y, qreal w, qreal h)
const;
339 inline QPolygonF mapFromParent(qreal x, qreal y, qreal w, qreal h)
const;
340 inline QPolygonF mapFromScene(qreal x, qreal y, qreal w, qreal h)
const;
341 inline QRectF mapRectFromItem(
const QGraphicsItem *item, qreal x, qreal y, qreal w, qreal h)
const;
342 inline QRectF mapRectFromParent(qreal x, qreal y, qreal w, qreal h)
const;
343 inline QRectF mapRectFromScene(qreal x, qreal y, qreal w, qreal h)
const;
345 bool isAncestorOf(
const QGraphicsItem *child)
const;
346 QGraphicsItem *commonAncestorItem(
const QGraphicsItem *other)
const;
347 bool isUnderMouse()
const;
350 QVariant data(
int key)
const;
351 void setData(
int key,
const QVariant &value);
353 Qt::InputMethodHints inputMethodHints()
const;
354 void setInputMethodHints(Qt::InputMethodHints hints);
360 virtual int type()
const;
362 void installSceneEventFilter(QGraphicsItem *filterItem);
363 void removeSceneEventFilter(QGraphicsItem *filterItem);
366 void updateMicroFocus();
367 virtual bool sceneEventFilter(QGraphicsItem *watched, QEvent *event);
368 virtual bool sceneEvent(QEvent *event);
369 virtual void contextMenuEvent(QGraphicsSceneContextMenuEvent *event);
370 virtual void dragEnterEvent(QGraphicsSceneDragDropEvent *event);
371 virtual void dragLeaveEvent(QGraphicsSceneDragDropEvent *event);
372 virtual void dragMoveEvent(QGraphicsSceneDragDropEvent *event);
373 virtual void dropEvent(QGraphicsSceneDragDropEvent *event);
374 virtual void focusInEvent(QFocusEvent *event);
375 virtual void focusOutEvent(QFocusEvent *event);
376 virtual void hoverEnterEvent(QGraphicsSceneHoverEvent *event);
377 virtual void hoverMoveEvent(QGraphicsSceneHoverEvent *event);
378 virtual void hoverLeaveEvent(QGraphicsSceneHoverEvent *event);
379 virtual void keyPressEvent(QKeyEvent *event);
380 virtual void keyReleaseEvent(QKeyEvent *event);
381 virtual void mousePressEvent(QGraphicsSceneMouseEvent *event);
382 virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *event);
383 virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
384 virtual void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event);
385 virtual void wheelEvent(QGraphicsSceneWheelEvent *event);
386 virtual void inputMethodEvent(QInputMethodEvent *event);
387 virtual QVariant inputMethodQuery(Qt::InputMethodQuery query)
const;
389 virtual QVariant itemChange(GraphicsItemChange change,
const QVariant &value);
392 UserExtension = 0x80000000
394 virtual bool supportsExtension(Extension extension)
const;
395 virtual void setExtension(Extension extension,
const QVariant &variant);
396 virtual QVariant extension(
const QVariant &variant)
const;
399 QGraphicsItem(QGraphicsItemPrivate &dd, QGraphicsItem *parent);
400 QScopedPointer<QGraphicsItemPrivate> d_ptr;
403 void removeFromIndex();
404 void prepareGeometryChange();
407 Q_DISABLE_COPY(QGraphicsItem)
408 Q_DECLARE_PRIVATE(QGraphicsItem)
409 friend class QGraphicsItemGroup;
410 friend class QGraphicsScene;
411 friend class QGraphicsScenePrivate;
412 friend class QGraphicsSceneFindItemBspTreeVisitor;
413 friend class QGraphicsSceneBspTree;
414 friend class QGraphicsView;
415 friend class QGraphicsViewPrivate;
416 friend class QGraphicsObject;
417 friend class QGraphicsWidget;
418 friend class QGraphicsWidgetPrivate;
419 friend class QGraphicsProxyWidgetPrivate;
420 friend class QGraphicsSceneIndex;
421 friend class QGraphicsSceneIndexPrivate;
422 friend class QGraphicsSceneBspTreeIndex;
423 friend class QGraphicsSceneBspTreeIndexPrivate;
424 friend class QGraphicsItemEffectSourcePrivate;
425 friend class QGraphicsTransformPrivate;
426#ifndef QT_NO_GESTURES
427 friend class QGestureManager;
429 friend class ::tst_QGraphicsItem;
430 friend bool qt_closestLeaf(
const QGraphicsItem *,
const QGraphicsItem *);
431 friend bool qt_closestItemFirst(
const QGraphicsItem *,
const QGraphicsItem *);
821 QDOC_PROPERTY(
bool openExternalLinks READ openExternalLinks WRITE setOpenExternalLinks)
822 QDOC_PROPERTY(QTextCursor textCursor READ textCursor WRITE setTextCursor)
825 explicit QGraphicsTextItem(QGraphicsItem *parent =
nullptr);
826 explicit QGraphicsTextItem(
const QString &text, QGraphicsItem *parent =
nullptr);
827 ~QGraphicsTextItem();
829 QString toHtml()
const;
830 void setHtml(
const QString &html);
832 QString toPlainText()
const;
833 void setPlainText(
const QString &text);
836 void setFont(
const QFont &font);
838 void setDefaultTextColor(
const QColor &c);
839 QColor defaultTextColor()
const;
841 QRectF boundingRect()
const override;
842 QPainterPath shape()
const override;
843 bool contains(
const QPointF &point)
const override;
845 void paint(QPainter *painter,
const QStyleOptionGraphicsItem *option, QWidget *widget) override;
847 bool isObscuredBy(
const QGraphicsItem *item)
const override;
848 QPainterPath opaqueArea()
const override;
851 int type()
const override;
853 void setTextWidth(qreal width);
854 qreal textWidth()
const;
858 void setDocument(QTextDocument *document);
859 QTextDocument *document()
const;
861 void setTextInteractionFlags(Qt::TextInteractionFlags flags);
862 Qt::TextInteractionFlags textInteractionFlags()
const;
864 void setTabChangesFocus(
bool b);
865 bool tabChangesFocus()
const;
867 void setOpenExternalLinks(
bool open);
868 bool openExternalLinks()
const;
870 void setTextCursor(
const QTextCursor &cursor);
871 QTextCursor textCursor()
const;
874 void linkActivated(
const QString &);
875 void linkHovered(
const QString &);
878 bool sceneEvent(QEvent *event) override;
879 void mousePressEvent(QGraphicsSceneMouseEvent *event) override;
880 void mouseMoveEvent(QGraphicsSceneMouseEvent *event) override;
881 void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override;
882 void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) override;
883 void contextMenuEvent(QGraphicsSceneContextMenuEvent *event) override;
884 void keyPressEvent(QKeyEvent *event) override;
885 void keyReleaseEvent(QKeyEvent *event) override;
886 void focusInEvent(QFocusEvent *event) override;
887 void focusOutEvent(QFocusEvent *event) override;
888 void dragEnterEvent(QGraphicsSceneDragDropEvent *event) override;
889 void dragLeaveEvent(QGraphicsSceneDragDropEvent *event) override;
890 void dragMoveEvent(QGraphicsSceneDragDropEvent *event) override;
891 void dropEvent(QGraphicsSceneDragDropEvent *event) override;
892 void inputMethodEvent(QInputMethodEvent *event) override;
893 void hoverEnterEvent(QGraphicsSceneHoverEvent *event) override;
894 void hoverMoveEvent(QGraphicsSceneHoverEvent *event) override;
895 void hoverLeaveEvent(QGraphicsSceneHoverEvent *event) override;
897 QVariant inputMethodQuery(Qt::InputMethodQuery query)
const override;
899 bool supportsExtension(Extension extension)
const override;
900 void setExtension(Extension extension,
const QVariant &variant) override;
901 QVariant extension(
const QVariant &variant)
const override;
904 Q_DISABLE_COPY(QGraphicsTextItem)
905 QGraphicsTextItemPrivate *dd;
906 friend class QGraphicsTextItemPrivate;