50 enum GraphicsItemFlag {
52 ItemIsSelectable = 0x2,
53 ItemIsFocusable = 0x4,
54 ItemClipsToShape = 0x8,
55 ItemClipsChildrenToShape = 0x10,
56 ItemIgnoresTransformations = 0x20,
57 ItemIgnoresParentOpacity = 0x40,
58 ItemDoesntPropagateOpacityToChildren = 0x80,
59 ItemStacksBehindParent = 0x100,
60 ItemUsesExtendedStyleOption = 0x200,
61 ItemHasNoContents = 0x400,
62 ItemSendsGeometryChanges = 0x800,
63 ItemAcceptsInputMethod = 0x1000,
64 ItemNegativeZStacksBehindParent = 0x2000,
66 ItemIsFocusScope = 0x8000,
67 ItemSendsScenePositionChanges = 0x10000,
68 ItemStopsClickFocusPropagation = 0x20000,
69 ItemStopsFocusHandling = 0x40000,
70 ItemContainsChildrenInShape = 0x80000
73 Q_DECLARE_FLAGS(GraphicsItemFlags, GraphicsItemFlag)
75 enum GraphicsItemChange {
77 ItemVisibleChange = 2,
82 ItemChildRemovedChange,
84 ItemPositionHasChanged,
85 ItemTransformHasChanged,
87 ItemVisibleHasChanged,
88 ItemEnabledHasChanged,
89 ItemSelectedHasChanged,
95 ItemToolTipHasChanged,
101 ItemOpacityHasChanged,
102 ItemScenePositionHasChanged,
104 ItemRotationHasChanged,
107 ItemTransformOriginPointChange,
108 ItemTransformOriginPointHasChanged
114 DeviceCoordinateCache
124 explicit QGraphicsItem(QGraphicsItem *parent =
nullptr);
125 virtual ~QGraphicsItem();
127 QGraphicsScene *scene()
const;
129 QGraphicsItem *parentItem()
const;
130 QGraphicsItem *topLevelItem()
const;
131 QGraphicsObject *parentObject()
const;
132 QGraphicsWidget *parentWidget()
const;
133 QGraphicsWidget *topLevelWidget()
const;
134 QGraphicsWidget *window()
const;
135 QGraphicsItem *panel()
const;
136 void setParentItem(QGraphicsItem *parent);
137 QList<QGraphicsItem *> childItems()
const;
138 bool isWidget()
const;
139 bool isWindow()
const;
140 bool isPanel()
const;
142 QGraphicsObject *toGraphicsObject();
143 const QGraphicsObject *toGraphicsObject()
const;
145 QGraphicsItemGroup *group()
const;
146 void setGroup(QGraphicsItemGroup *group);
148 GraphicsItemFlags flags()
const;
149 void setFlag(GraphicsItemFlag flag,
bool enabled =
true);
150 void setFlags(GraphicsItemFlags flags);
152 CacheMode cacheMode()
const;
153 void setCacheMode(CacheMode mode,
const QSize &cacheSize = QSize());
155 PanelModality panelModality()
const;
156 void setPanelModality(PanelModality panelModality);
157 bool isBlockedByModalPanel(QGraphicsItem **blockingPanel =
nullptr)
const;
159#if QT_CONFIG(tooltip)
160 QString toolTip()
const;
161 void setToolTip(
const QString &toolTip);
165 QCursor cursor()
const;
166 void setCursor(
const QCursor &cursor);
167 bool hasCursor()
const;
171 bool isVisible()
const;
172 bool isVisibleTo(
const QGraphicsItem *parent)
const;
173 void setVisible(
bool visible);
174 inline void hide() { setVisible(
false); }
175 inline void show() { setVisible(
true); }
177 bool isEnabled()
const;
178 void setEnabled(
bool enabled);
180 bool isSelected()
const;
181 void setSelected(
bool selected);
183 bool acceptDrops()
const;
184 void setAcceptDrops(
bool on);
186 qreal opacity()
const;
187 qreal effectiveOpacity()
const;
188 void setOpacity(qreal opacity);
190#if QT_CONFIG(graphicseffect)
192 QGraphicsEffect *graphicsEffect()
const;
193 void setGraphicsEffect(QGraphicsEffect *effect);
196 Qt::MouseButtons acceptedMouseButtons()
const;
197 void setAcceptedMouseButtons(Qt::MouseButtons buttons);
198 bool acceptHoverEvents()
const;
199 void setAcceptHoverEvents(
bool enabled);
200 bool acceptTouchEvents()
const;
201 void setAcceptTouchEvents(
bool enabled);
203 bool filtersChildEvents()
const;
204 void setFiltersChildEvents(
bool enabled);
206 bool handlesChildEvents()
const;
207 void setHandlesChildEvents(
bool enabled);
209 bool isActive()
const;
210 void setActive(
bool active);
212 bool hasFocus()
const;
213 void setFocus(Qt::FocusReason focusReason = Qt::OtherFocusReason);
216 QGraphicsItem *focusProxy()
const;
217 void setFocusProxy(QGraphicsItem *item);
219 QGraphicsItem *focusItem()
const;
220 QGraphicsItem *focusScopeItem()
const;
225 void ungrabKeyboard();
229 inline qreal x()
const {
return pos().x(); }
231 inline qreal y()
const {
return pos().y(); }
233 QPointF scenePos()
const;
234 void setPos(
const QPointF &pos);
235 inline void setPos(qreal x, qreal y);
236 inline void moveBy(qreal dx, qreal dy) { setPos(pos().x() + dx, pos().y() + dy); }
238 void ensureVisible(
const QRectF &rect = QRectF(),
int xmargin = 50,
int ymargin = 50);
239 inline void ensureVisible(qreal x, qreal y, qreal w, qreal h,
int xmargin = 50,
int ymargin = 50);
242 QTransform transform()
const;
243 QTransform sceneTransform()
const;
244 QTransform deviceTransform(
const QTransform &viewportTransform)
const;
245 QTransform itemTransform(
const QGraphicsItem *other,
bool *ok =
nullptr)
const;
246 void setTransform(
const QTransform &matrix,
bool combine =
false);
247 void resetTransform();
248 void setRotation(qreal angle);
249 qreal rotation()
const;
251 void setScale(qreal scale);
254 QList<QGraphicsTransform *> transformations()
const;
255 void setTransformations(
const QList<QGraphicsTransform *> &transformations);
257 QPointF transformOriginPoint()
const;
258 void setTransformOriginPoint(
const QPointF &origin);
259 inline void setTransformOriginPoint(qreal ax, qreal ay)
260 { setTransformOriginPoint(QPointF(ax,ay)); }
262 virtual void advance(
int phase);
265 qreal zValue()
const;
266 void setZValue(qreal z);
267 void stackBefore(
const QGraphicsItem *sibling);
270 virtual QRectF boundingRect()
const = 0;
271 QRectF childrenBoundingRect()
const;
272 QRectF sceneBoundingRect()
const;
273 virtual QPainterPath shape()
const;
274 bool isClipped()
const;
275 QPainterPath clipPath()
const;
276 virtual bool contains(
const QPointF &point)
const;
277 virtual bool collidesWithItem(
const QGraphicsItem *other, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape)
const;
278 virtual bool collidesWithPath(
const QPainterPath &path, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape)
const;
279 QList<QGraphicsItem *> collidingItems(Qt::ItemSelectionMode mode = Qt::IntersectsItemShape)
const;
280 bool isObscured(
const QRectF &rect = QRectF())
const;
281 inline bool isObscured(qreal x, qreal y, qreal w, qreal h)
const;
282 virtual bool isObscuredBy(
const QGraphicsItem *item)
const;
283 virtual QPainterPath opaqueArea()
const;
285 QRegion boundingRegion(
const QTransform &itemToDeviceTransform)
const;
286 qreal boundingRegionGranularity()
const;
287 void setBoundingRegionGranularity(qreal granularity);
290 virtual void paint(QPainter *painter,
const QStyleOptionGraphicsItem *option, QWidget *widget =
nullptr) = 0;
291 void update(
const QRectF &rect = QRectF());
292 inline void update(qreal x, qreal y, qreal width, qreal height);
293 void scroll(qreal dx, qreal dy,
const QRectF &rect = QRectF());
296 QPointF mapToItem(
const QGraphicsItem *item,
const QPointF &point)
const;
297 QPointF mapToParent(
const QPointF &point)
const;
298 QPointF mapToScene(
const QPointF &point)
const;
299 QPolygonF mapToItem(
const QGraphicsItem *item,
const QRectF &rect)
const;
300 QPolygonF mapToParent(
const QRectF &rect)
const;
301 QPolygonF mapToScene(
const QRectF &rect)
const;
302 QRectF mapRectToItem(
const QGraphicsItem *item,
const QRectF &rect)
const;
303 QRectF mapRectToParent(
const QRectF &rect)
const;
304 QRectF mapRectToScene(
const QRectF &rect)
const;
305 QPolygonF mapToItem(
const QGraphicsItem *item,
const QPolygonF &polygon)
const;
306 QPolygonF mapToParent(
const QPolygonF &polygon)
const;
307 QPolygonF mapToScene(
const QPolygonF &polygon)
const;
308 QPainterPath mapToItem(
const QGraphicsItem *item,
const QPainterPath &path)
const;
309 QPainterPath mapToParent(
const QPainterPath &path)
const;
310 QPainterPath mapToScene(
const QPainterPath &path)
const;
311 QPointF mapFromItem(
const QGraphicsItem *item,
const QPointF &point)
const;
312 QPointF mapFromParent(
const QPointF &point)
const;
313 QPointF mapFromScene(
const QPointF &point)
const;
314 QPolygonF mapFromItem(
const QGraphicsItem *item,
const QRectF &rect)
const;
315 QPolygonF mapFromParent(
const QRectF &rect)
const;
316 QPolygonF mapFromScene(
const QRectF &rect)
const;
317 QRectF mapRectFromItem(
const QGraphicsItem *item,
const QRectF &rect)
const;
318 QRectF mapRectFromParent(
const QRectF &rect)
const;
319 QRectF mapRectFromScene(
const QRectF &rect)
const;
320 QPolygonF mapFromItem(
const QGraphicsItem *item,
const QPolygonF &polygon)
const;
321 QPolygonF mapFromParent(
const QPolygonF &polygon)
const;
322 QPolygonF mapFromScene(
const QPolygonF &polygon)
const;
323 QPainterPath mapFromItem(
const QGraphicsItem *item,
const QPainterPath &path)
const;
324 QPainterPath mapFromParent(
const QPainterPath &path)
const;
325 QPainterPath mapFromScene(
const QPainterPath &path)
const;
327 inline QPointF mapToItem(
const QGraphicsItem *item, qreal x, qreal y)
const;
328 inline QPointF mapToParent(qreal x, qreal y)
const;
329 inline QPointF mapToScene(qreal x, qreal y)
const;
330 inline QPolygonF mapToItem(
const QGraphicsItem *item, qreal x, qreal y, qreal w, qreal h)
const;
331 inline QPolygonF mapToParent(qreal x, qreal y, qreal w, qreal h)
const;
332 inline QPolygonF mapToScene(qreal x, qreal y, qreal w, qreal h)
const;
333 inline QRectF mapRectToItem(
const QGraphicsItem *item, qreal x, qreal y, qreal w, qreal h)
const;
334 inline QRectF mapRectToParent(qreal x, qreal y, qreal w, qreal h)
const;
335 inline QRectF mapRectToScene(qreal x, qreal y, qreal w, qreal h)
const;
336 inline QPointF mapFromItem(
const QGraphicsItem *item, qreal x, qreal y)
const;
337 inline QPointF mapFromParent(qreal x, qreal y)
const;
338 inline QPointF mapFromScene(qreal x, qreal y)
const;
339 inline QPolygonF mapFromItem(
const QGraphicsItem *item, qreal x, qreal y, qreal w, qreal h)
const;
340 inline QPolygonF mapFromParent(qreal x, qreal y, qreal w, qreal h)
const;
341 inline QPolygonF mapFromScene(qreal x, qreal y, qreal w, qreal h)
const;
342 inline QRectF mapRectFromItem(
const QGraphicsItem *item, qreal x, qreal y, qreal w, qreal h)
const;
343 inline QRectF mapRectFromParent(qreal x, qreal y, qreal w, qreal h)
const;
344 inline QRectF mapRectFromScene(qreal x, qreal y, qreal w, qreal h)
const;
346 bool isAncestorOf(
const QGraphicsItem *child)
const;
347 QGraphicsItem *commonAncestorItem(
const QGraphicsItem *other)
const;
348 bool isUnderMouse()
const;
351 QVariant data(
int key)
const;
352 void setData(
int key,
const QVariant &value);
354 Qt::InputMethodHints inputMethodHints()
const;
355 void setInputMethodHints(Qt::InputMethodHints hints);
361 virtual int type()
const;
363 void installSceneEventFilter(QGraphicsItem *filterItem);
364 void removeSceneEventFilter(QGraphicsItem *filterItem);
367 void updateMicroFocus();
368 virtual bool sceneEventFilter(QGraphicsItem *watched, QEvent *event);
369 virtual bool sceneEvent(QEvent *event);
370 virtual void contextMenuEvent(QGraphicsSceneContextMenuEvent *event);
371 virtual void dragEnterEvent(QGraphicsSceneDragDropEvent *event);
372 virtual void dragLeaveEvent(QGraphicsSceneDragDropEvent *event);
373 virtual void dragMoveEvent(QGraphicsSceneDragDropEvent *event);
374 virtual void dropEvent(QGraphicsSceneDragDropEvent *event);
375 virtual void focusInEvent(QFocusEvent *event);
376 virtual void focusOutEvent(QFocusEvent *event);
377 virtual void hoverEnterEvent(QGraphicsSceneHoverEvent *event);
378 virtual void hoverMoveEvent(QGraphicsSceneHoverEvent *event);
379 virtual void hoverLeaveEvent(QGraphicsSceneHoverEvent *event);
380 virtual void keyPressEvent(QKeyEvent *event);
381 virtual void keyReleaseEvent(QKeyEvent *event);
382 virtual void mousePressEvent(QGraphicsSceneMouseEvent *event);
383 virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *event);
384 virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
385 virtual void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event);
386 virtual void wheelEvent(QGraphicsSceneWheelEvent *event);
387 virtual void inputMethodEvent(QInputMethodEvent *event);
388 virtual QVariant inputMethodQuery(Qt::InputMethodQuery query)
const;
390 virtual QVariant itemChange(GraphicsItemChange change,
const QVariant &value);
393 UserExtension = 0x80000000
395 virtual bool supportsExtension(Extension extension)
const;
396 virtual void setExtension(Extension extension,
const QVariant &variant);
397 virtual QVariant extension(
const QVariant &variant)
const;
400 QGraphicsItem(QGraphicsItemPrivate &dd, QGraphicsItem *parent);
401 QScopedPointer<QGraphicsItemPrivate> d_ptr;
404 void removeFromIndex();
405 void prepareGeometryChange();
408 Q_DISABLE_COPY(QGraphicsItem)
409 Q_DECLARE_PRIVATE(QGraphicsItem)
410 friend class QGraphicsItemGroup;
411 friend class QGraphicsScene;
412 friend class QGraphicsScenePrivate;
413 friend class QGraphicsSceneFindItemBspTreeVisitor;
414 friend class QGraphicsSceneBspTree;
415 friend class QGraphicsView;
416 friend class QGraphicsViewPrivate;
417 friend class QGraphicsObject;
418 friend class QGraphicsWidget;
419 friend class QGraphicsWidgetPrivate;
420 friend class QGraphicsProxyWidgetPrivate;
421 friend class QGraphicsSceneIndex;
422 friend class QGraphicsSceneIndexPrivate;
423 friend class QGraphicsSceneBspTreeIndex;
424 friend class QGraphicsSceneBspTreeIndexPrivate;
425 friend class QGraphicsItemEffectSourcePrivate;
426 friend class QGraphicsTransformPrivate;
427#ifndef QT_NO_GESTURES
428 friend class QGestureManager;
430 friend class ::tst_QGraphicsItem;
431 friend bool qt_closestLeaf(
const QGraphicsItem *,
const QGraphicsItem *);
432 friend bool qt_closestItemFirst(
const QGraphicsItem *,
const QGraphicsItem *);
822 QDOC_PROPERTY(
bool openExternalLinks READ openExternalLinks WRITE setOpenExternalLinks)
823 QDOC_PROPERTY(QTextCursor textCursor READ textCursor WRITE setTextCursor)
826 explicit QGraphicsTextItem(QGraphicsItem *parent =
nullptr);
827 explicit QGraphicsTextItem(
const QString &text, QGraphicsItem *parent =
nullptr);
828 ~QGraphicsTextItem();
830 QString toHtml()
const;
831 void setHtml(
const QString &html);
833 QString toPlainText()
const;
834 void setPlainText(
const QString &text);
837 void setFont(
const QFont &font);
839 void setDefaultTextColor(
const QColor &c);
840 QColor defaultTextColor()
const;
842 QRectF boundingRect()
const override;
843 QPainterPath shape()
const override;
844 bool contains(
const QPointF &point)
const override;
846 void paint(QPainter *painter,
const QStyleOptionGraphicsItem *option, QWidget *widget) override;
848 bool isObscuredBy(
const QGraphicsItem *item)
const override;
849 QPainterPath opaqueArea()
const override;
852 int type()
const override;
854 void setTextWidth(qreal width);
855 qreal textWidth()
const;
859 void setDocument(QTextDocument *document);
860 QTextDocument *document()
const;
862 void setTextInteractionFlags(Qt::TextInteractionFlags flags);
863 Qt::TextInteractionFlags textInteractionFlags()
const;
865 void setTabChangesFocus(
bool b);
866 bool tabChangesFocus()
const;
868 void setOpenExternalLinks(
bool open);
869 bool openExternalLinks()
const;
871 void setTextCursor(
const QTextCursor &cursor);
872 QTextCursor textCursor()
const;
875 void linkActivated(
const QString &);
876 void linkHovered(
const QString &);
879 bool sceneEvent(QEvent *event) override;
880 void mousePressEvent(QGraphicsSceneMouseEvent *event) override;
881 void mouseMoveEvent(QGraphicsSceneMouseEvent *event) override;
882 void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override;
883 void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event) override;
884 void contextMenuEvent(QGraphicsSceneContextMenuEvent *event) override;
885 void keyPressEvent(QKeyEvent *event) override;
886 void keyReleaseEvent(QKeyEvent *event) override;
887 void focusInEvent(QFocusEvent *event) override;
888 void focusOutEvent(QFocusEvent *event) override;
889 void dragEnterEvent(QGraphicsSceneDragDropEvent *event) override;
890 void dragLeaveEvent(QGraphicsSceneDragDropEvent *event) override;
891 void dragMoveEvent(QGraphicsSceneDragDropEvent *event) override;
892 void dropEvent(QGraphicsSceneDragDropEvent *event) override;
893 void inputMethodEvent(QInputMethodEvent *event) override;
894 void hoverEnterEvent(QGraphicsSceneHoverEvent *event) override;
895 void hoverMoveEvent(QGraphicsSceneHoverEvent *event) override;
896 void hoverLeaveEvent(QGraphicsSceneHoverEvent *event) override;
898 QVariant inputMethodQuery(Qt::InputMethodQuery query)
const override;
900 bool supportsExtension(Extension extension)
const override;
901 void setExtension(Extension extension,
const QVariant &variant) override;
902 QVariant extension(
const QVariant &variant)
const override;
905 Q_DISABLE_COPY(QGraphicsTextItem)
906 QGraphicsTextItemPrivate *dd;
907 friend class QGraphicsTextItemPrivate;