如何映射项目坐标?

时间:2015-08-24 19:26:01

标签: c++ qt qgraphicsitem

我知道每个项目都有自己相对于场景的坐标。我在场景中添加了一个椭圆。他们每个人都从boundingRect(): QRect(0, 0, 50, 50)返回以下内容。我不知道如何将坐标映射到另一个QGraphicsItem这是一条线。这条线应该连接这两个椭圆。我有正确的省略号坐标,我将它们传递给自定义QGraphicsLineItem构造函数。但是这条线路在错误的地方。我应该如何使用mapFromItem()或其他方法来获得结果?

我得到每个椭圆的坐标如下:

selfCoords = ellipse->mapFromScene(QPointF(0.0,0.0));

1 个答案:

答案 0 :(得分:0)

如果我想在鼠标位置添加新的椭圆,如何将坐标映射到椭圆项目以获得正确的场景位置?例如我从contextMenuEvent获得 QPointF coords = event->scenePos();我想在那里创建椭圆。我有自定义QGraphicsScene MyScene,其中我指向QGraphicsView* view

我使用事件表单void MyScene::contextMenuEvent(QGraphicsSceneContextMenuEvent *event)

QPointF coords = event->scenePos(); QPointF ellpiseCoords = view->mapToScene(coords .x(), coords .y())

我总是弄错了。