参考文章
pyqt5:利用QFileDialog从本地选择图片\文本文档显示到label、保存图片\label文本到本地(附代码)_pyqt5中qfiledialog.getopenfileurl-CSDN博客
txt文件的打开与保存
def openTextFile(self): # 选择文本文件上传
fd,fp = QFileDialog.getOpenFileName(self.centralwidget, "选择文件", "", "*.txt;;All Files(*)") # 打开对话框
f=open(fd,'r') # 将刚刚获取的保存路径fd对应的文件打开,其中'r' 表示以读取模式打开文件
self.label_txt.setText(f.read()) # 在控件上显示读取到的txt文件里边的内容
self.label_filePath.setText(fd) # 在控件上显示读取到txt文件的路径
f.close()
def saveTextFile(self): # 保存文本文件
fd,fp= QFileDialog.getSaveFileName(self.centralwidget, "保存文件", "", "*.txt;;All Files(*)") # 点击“保存文件”按钮后弹出对话框要求我们给需要保存的文件命名,最后点击保存
f=open(fd,'w') # 将刚刚获取的保存路径fd对应的文件打开,其中'w' 表示以写入模式打开文件。
f.write(self.label_txt.text()) # 在保存路径fd对应的文件里写入信息。
f.close() #关闭文件
图片的打开与保存
def openImage(self): # 选择本地图片上传
global imgName # 这里为了方便别的地方引用图片路径,我们把它设置为全局变量
imgName, imgType = QFileDialog.getOpenFileName(self.centralwidget, "打开图片", "", "*.jpg;;*.png;;All Files(*)") # 弹出一个文件选择框,第一个返回值imgName记录选中的文件路径+文件名,第二个返回值imgType记录文件的类型
jpg = QtGui.QPixmap(imgName).scaled(self.label_image.width(), self.label_image.height()) # 通过文件路径获取图片文件,并设置图片长宽为label控件的长宽
self.label_image.setPixmap(jpg) # 在label控件上显示选择的图片
self.label_imagePath.setText(imgName) # 显示所选图片的本地路径
def saveImage(self): # 保存图片到本地
screen = QApplication.primaryScreen() #这一行代码获取了当前应用程序的主屏幕对象,通过QApplication.primaryScreen()函数实现。这个屏幕对象用于后续截取屏幕上的图像。
pix = screen.grabWindow(self.label_image.winId()) # 这一行代码使用screen.grabWindow()函数来截取指定窗口(在这里是label_image窗口)的图像。self.label_image.winId()返回label_image窗口的唯一标识符。
fd,type= QFileDialog.getSaveFileName(self.centralwidget, "保存图片", "", "*.jpg;;*.png;;All Files(*)") #弹出对话框
pix.save(fd)
保存图像的第二种方式:
def saveImage(self):
img = self.label_4.pixmap().toImage()
fpath, ftype = QFileDialog.getSaveFileName(self.centralwidget, "保存图片", "d:\\", "*.jpg;;*.png;;All Files(*)")
img.save(fpath)
pdf的保存
def saveTextFile(self): # 保存文本文件
inputFile ="./folder/result.docx"
fd,fp= QFileDialog.getSaveFileName(self.centralwidget, "保存PDF", "","PDF Files (*.pdf)")
f=open(fd,'w')
convert(inputFile, fd)
f.close()
pdf转换代码:
from docx2pdf import convert
inputFile ="./report.docx"
outputFile ="convert.pdf"
file = open(outputFile,'w')
file.close()
convert(inputFile, outputFile)