Qt 如何通过鼠标单击在QGraphicsView上获取QGraphicsPitem上的像素

Qt 如何通过鼠标单击在QGraphicsView上获取QGraphicsPitem上的像素,qt,qgraphicsitem,qgraphicsscene,Qt,Qgraphicsitem,Qgraphicsscene,我有一个QGraphicscene,上面有一个QGraphicsPixmapItem,显示一个图像。我还有一个场景。我定义了一个mousePressEvent()函数,用于在视图上查找鼠标单击 视图设置为包含pixmap: //pixmap is a QGraphicsPixmapItem * view->fitInView(pixmap, Qt::KeepAspectRatio); 我可以获得鼠标单击在视图坐标系中的位置: //e is my QMouseEvent * QPoint

我有一个QGraphicscene,上面有一个QGraphicsPixmapItem,显示一个图像。我还有一个场景。我定义了一个mousePressEvent()函数,用于在视图上查找鼠标单击

视图设置为包含pixmap:

//pixmap is a QGraphicsPixmapItem *
view->fitInView(pixmap, Qt::KeepAspectRatio);
我可以获得鼠标单击在视图坐标系中的位置:

//e is my QMouseEvent *
QPoint local_pt = view->mapFromGlobal(e->globalPos());
现在,我想使用QGraphicsView、qgraphicscene、QGraphicsPixmapItem的任意组合将这一点映射到原始图像坐标

我尝试了
pixmap->boundingRect()
,这给了我一个QRectF(0,0 778x582),它具有(原始图像的)适当的尺寸,但我看不到x和y坐标如何与单击的局部点相关

如何获取鼠标单击在原始图像坐标中的位置

编辑:

这就是最终起作用的原因:

//e is my QMouseEvent *
QPoint  local_pt = view->mapFromGlobal(e->globalPos());
QPointF img_coord_pt = view->mapToScene(local_pt);
单击图像左上角时,img_coord_pt为(0,0),右下角为(图像宽度、图像高度)。

将屏幕坐标映射到场景坐标,然后使用获取项目并将场景全局坐标映射到项目局部坐标


当然也有相反的情况。

谢谢。最终起作用的是
view->maptosene(本地)