我正在尝试制作一个允许我在照片中标记对象的程序。我正在使用
QRubberBand
在图像上创建选择矩形。这个图像是一个QLabel
,我设置了一个QPixmap
。重要的是要注意我调整了原始图像的大小。
现在我可以得到那些选择矩形的
TopLeft
和BottomRight
坐标,但我想得到原始图像中的等效矩形。我有一个如何去做的想法,但我需要知道第一个像素的坐标才能做到这一点。
pos()
和geometry()
的QLabel
。他们都给了我一个值(0,0)。TopLeft
和 BottomRight
那样绘制它,但回报仍然是 0.这是我的
QLabel
的定义:
self.image_box = QLabel(self)
self.set_image(self.img_paths[0])
self.layout_window.addWidget(self.image_box, alignment=Qt.AlignmentFlag.AlignHCenter)
这里是
set_image()
函数:
def set_image(self, path):
pixmap = QPixmap(path)
#Conseguir el tamaño original de la foto.
width_original = pixmap.width()
height_original = pixmap.height()
if width_original >= height_original:
#pixmap = pixmap.scaledToWidth(self.img_panel_width - margin)
pixmap = pixmap.scaledToWidth(self.img_panel_width)
else:
#pixmap = pixmap.scaledToHeight(self.img_panel_height - margin)
pixmap = pixmap.scaledToHeight(self.img_panel_height)
#pixmap = pixmap.scaled(self.img_panel_width, self.img_panel_height)
self.ratioEscW = width_original / pixmap.width()
self.ratioEscH = height_original / pixmap.height()
self.image_box.setPixmap(pixmap)