【发布时间】:2014-08-12 14:16:59
【问题描述】:
我正在尝试对两个图像上传使用相同的图像上传功能。
所以在点击上传按钮时,我需要将 self.UploadStudentPhoto 或 self.UploadParentsPhoto 传递给 self.UploadFile() 函数,对应于按下的按钮。
由于我们无法将变量传递到 SLOT,所以我尝试使用 QSignalMapper,如下所示。
self.UploadStudentPhoto = QLineEdit() #Student Photo location
self.UploadParentsPhoto = QLineEdit() #Parents Photo location
self.ParentsImage = None
self.SignalMapper = QSignalMapper()
self.connect(self.ButtonUpload1,SIGNAL("clicked()"),self.SignalMapper, SLOT("map()"))
self.connect(self.ButtonUpload2,SIGNAL("clicked()"),self.SignalMapper,SLOT("map()"))
self.SignalMapper.setMapping(self.ButtonUpload1, self.UploadStudentPhoto)
self.SignalMapper.setMapping(self.ButtonUpload2, self.UploadParentsPhoto)
但我不确定需要将 SIGNAL("mapped()") 传递给我为文件上传编写的函数的以下行。我应该如何写下一行:
self.connect(self.SignalMapper,SIGNAL("mapped()"), self, self.UploadFile)
上传文件功能如下:
def UploadFile(self, ImagePath, ImageLabel):
dir = os.path.dirname(".")
formats = ["*.%s" % unicode(format).lower()\
for format in QImageReader.supportedImageFormats()]
self.fname = unicode(QFileDialog.getOpenFileName(self,"Image",dir,"Image (%s)" % " ".join(formats)))
print self.fname
ImagePath.setText(self.fname)
ImagePath.selectAll()
ImageLabel = QImage()
ImageLabel.setPixmap(QPixmap.fromImage(ImageLabel))
我看到了很多 QSignalMapper 示例,但我不确定变量是如何传递的。 请提出建议。
【问题讨论】:
标签: python qt python-2.7 qt4 pyqt4