获取QGraphicsItem 在QGraphicsScene中的位置
时间: 2024-10-12 08:17:07 浏览: 61
qt5下自定义QGraphicsItem在场景中拖动吸附算法
在Qt图形界面编程中,`QGraphicsItem`是构成`QGraphicsScene`的基本元素,如形状、文本等。如果你想要获取某个`QGraphicsItem`在`QGraphicsScene`中的位置,你可以通过以下步骤:
1. 首先,你需要有一个指向`QGraphicsItem`的引用或者指针。
2. 然后,可以调用`itemPos()`方法,它会返回该`QGraphicsItem`相对于其父`QGraphicsWidget`或`QGraphicsScene`的位置,通常以像素为单位。
```cpp
QPointF itemPosition = item->pos();
```
如果你想得到的是场景坐标而不是父容器坐标,你可以在这个基础上加上场景的视口变换:
```cpp
QRectF sceneBoundingRect = scene->sceneRect(); // 获取场景边界
QPointF scenePosition = scene->mapToScene(itemPosition);
QPointF viewportPos = scene->viewport()->mapFromScene(scenePosition); // 转换到视口坐标
```
阅读全文