【发布时间】:2020-12-02 08:06:55
【问题描述】:
我正在制作一个应用程序,我需要在鼠标点击时提取图像的坐标。 图片的分辨率为 1920x1080,我的笔记本电脑屏幕的分辨率为 1366x768。
我在这里面临两个问题。 1)图像在我的笔记本电脑上以裁剪的方式显示。 2) 每当我单击鼠标按钮时,它都会给我笔记本电脑屏幕的坐标,而不是图像的坐标。
我严格来说不必调整图像大小,其次,在我的最终项目中,图像不会占据整个屏幕,它只会占据屏幕的一部分。我正在寻找一种方法来显示整个图像以及获取相对于图像的坐标。
from PyQt4 import QtGui, QtCore
import sys
class Window(QtGui.QLabel):
def __init__(self, parent=None):
super(Window, self).__init__(parent)
self.setPixmap(QtGui.QPixmap('image.jpg'))
self.mousePressEvent = self.getPos
def getPos(self , event):
x = event.pos().x()
y = event.pos().y()
self.point = (x, y)
print(self.point)
if __name__ == "__main__":
app = QtGui.QApplication([])
w = Window()
w.showMaximized()
sys.exit(app.exec_())
这是一张图片,可以让您了解我的最终项目。
【问题讨论】:
-
嗯。我不明白。 1.你说“在我的最终项目中,图像不会占据整个屏幕”,那你为什么抱怨裁剪的图像? 2. mousePressEvent.pos() always 相对于小部件,而不是相对于屏幕,我不明白你为什么说它给你屏幕坐标,因为它没有。跨度>
-
@musicamante 我分享了一张图片,可以让您了解我的最终项目。
-
@musicamante 1. 我的意思是图像不应该看起来好像被裁剪了。我需要完整的图像,但该图像不会占据整个屏幕,因为该图像会显示一些附加信息(就像上图一样)。 2. 我希望图像左上角的坐标为 (0, 0) 和右下角的坐标为 (1920, 1080),也许
mousePressEvent.pos()不是在这里使用的正确函数,但我想我现在已经说得够清楚了。 -
所以你希望图像被缩放。它应该保持比例吗?
-
@musicamante 是的,应该。