如何在 PyQt5 或 PyQt6 中获取 QLabel 的第一个像素的坐标?

问题描述 投票:0回答:0

我正在尝试制作一个允许我在照片中标记对象的程序。我正在使用

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)
python pyqt5 qlabel qpixmap qrubberband
© www.soinside.com 2019 - 2024. All rights reserved.