我正在开发一个带有按钮的图像查看器,当点击它时,可以获得加载图像的坐标。然而,当我放大图像并点击它时,我得到了图像片段所在的显示坐标,而与图像在正方形内的中心位置无关。我想要的是被点击的加载图像的坐标。这意味着,如果显示中的图像被缩放或滚动(上/下或右/左),坐标应相应地调整。这可能是一个简单的问题和一个简单的答案,但是我在这个问题上被困了一个多星期,尽管我试图理解Qt website的文档没有成功
例如,我试图替换线路
self.photo_clicked.emit(QtCore.QPoint(event.pos()))
通过
self.photo_clicked.emit(QtCore.QPoint(QGraphicsView.mapFromScene(event.pos())))
但它给了我一个错误:
TypeError: descriptor 'mapFromScene' requires a 'PySide2.QtWidgets.QGraphicsView' object but received a 'PySide2.QtCore.QPoint'
以下是脚本(其中一部分灵感来自this example):
^{pr2}$
当你缩放并按下一个像素时,这可以代表一组像素,反之亦然,我想你明白了,因为显示图像是向下采样或上扫描,视情况而定。最终,不管它是什么,你都会得到一个不理想的像素,但是非常接近。说到重点,考虑到在@ekhumuro的实现中没有项目的升级,使用相对于项目坐标系而不是场景的鼠标位置是正确的,因为项目可以移动,因此考虑到项目未转换的一般解决方案是:
相关问题 更多 >
编程相关推荐