PyQt 笔记

参考文章

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)

你可能感兴趣的:(pyqt,笔记)