【发布时间】:2020-11-14 04:33:11
【问题描述】:
我阅读了很多关于如何在 QLabel 中获取图像上单击位置坐标的教程(Qt Creator 在“form.ui”中定义的以下代码中的“label_2”)。其中大部分是指使用 mousePressEvent 方法。但是,在实现该方法后,当我单击导入图像上的某个点时,它不起作用。似乎 mousePressEvent 从来没有被任何东西调用过。想知道它出了什么问题。是否遗漏了一些琐碎或非琐碎的事情?
import sys
import os
from PySide2.QtWidgets import QApplication, QWidget
from PySide2.QtCore import QFile, Qt
from PySide2.QtUiTools import QUiLoader
from PySide2.QtGui import QPixmap
class qttest(QWidget):
def __init__(self):
super(qttest, self).__init__()
self.load_ui()
self.showImage()
def load_ui(self):
loader = QUiLoader()
path = os.path.join(os.path.dirname(__file__), "form.ui")
ui_file = QFile(path)
ui_file.open(QFile.ReadOnly)
self.ui = loader.load(ui_file, self)
ui_file.close()
def showImage(self,file='img.jpg'):
pixmap = QPixmap(file)
pixmap1 = pixmap.scaled(200, 200, Qt.KeepAspectRatio)
self.ui.label_2.setPixmap(pixmap1)
self.ui.label_2.mousePressEvent = self.getPos
def getPos(self,event):
x = event.pos().x()
y = event.pos().y()
print(x,y)
if __name__ == "__main__":
app = QApplication([])
widget = qttest()
widget.show()
sys.exit(app.exec_())
【问题讨论】: