当你获取一个QGraphicsRectItem
的坐标时,你得到的坐标值取决于你使用的方法。
-
局部坐标:如果你直接查询图形项(如
QGraphicsRectItem
)的坐标,通常得到的是该图形项在其自身局部坐标系中的位置。在这种情况下,由于QRectF(0, 0, 100, 100)
定义了矩形的局部位置和大小,其左上角的局部坐标仍然是(0, 0)
,这是相对于图形项自身坐标系的。 -
场景坐标:如果你想获取图形项在
QGraphicsScene
中的坐标,即场景坐标,你需要使用QGraphicsItem
的pos()
方法。这个方法返回的是图形项在场景中的位置,考虑到之前通过setPos(50, 50)
设置了位置,pos()
将返回QPointF(50, 50)
。
所以,回答你的问题:
- 如果你查询的是图形项的局部坐标(例如,通过
rect()
方法获取其边界矩形),你将得到(0, 0)
作为左上角的坐标。 - 如果你查询的是图形项在场景中的坐标(通过
pos()
方法),你将得到(50, 50)
。
这两种坐标系统是不同的,局部坐标是相对于图形项自身的,而场景坐标是相对于整个场景的。