QFileDialog是用于打开和保存文件的标准对话框。 QFileDialog类继承QDialog类;
QFileDialog在打开文件时使用了文本过滤器,用于显示指定扩展名的文件。也可以设置使用QFileDialog打开文件时的起始目录和指定扩展名的文件。
常用方法:
例如:
1 #QFileDialog对话框使用 2 from PyQt5.QtWidgets import QFileDialog,QTextEdit,QFontDialog, QLineEdit,QStyle,QFormLayout, QInputDialog,QVBoxLayout,QWidget,QApplication ,QHBoxLayout,QDialog,QPushButton,QMainWindow,QGridLayout,QLabel 3 from PyQt5.QtCore import QDir 4 from PyQt5.QtGui import QIcon,QPixmap,QFont 5 from PyQt5.QtCore import Qt 6 7 import sys 8 9 class WindowClass(QWidget):10 11 def __init__(self,parent=None):12 13 super(WindowClass, self).__init__(parent)14 layout=QVBoxLayout()15 self.btn=QPushButton("加载图片")16 self.btn.clicked.connect(self.getFile)17 layout.addWidget(self.btn)18 19 self.le=QLabel("")20 layout.addWidget(self.le)21 22 self.btn1=QPushButton("加载文本文件")23 self.btn1.clicked.connect(self.getText)24 layout.addWidget(self.btn1)25 26 self.contents=QTextEdit()27 layout.addWidget(self.contents)28 29 self.setLayout(layout)30 self.setWindowTitle("File Dialog Demo")31 32 def getFile(self):33 fname,_ =QFileDialog.getOpenFileName(self,'OpenFile',"c:/","Image files (*.jpg *.gif *.png)")34 """35 参数一:设置父组件36 参数二:QFileDialog的标题37 参数三:默认打开的目录,“.”点表示程序运行目录,/表示当前盘符根目录38 参数四:对话框的文件扩展名过滤器Filter,比如使用 Image files(*.jpg *.gif) 表示只能显示扩展名为.jpg或者.gif文件39 设置多个文件扩展名过滤,使用双引号隔开;40 “All Files(*);;PDF Files(*.pdf);;Text Files(*.txt)”41 """42 self.le.setPixmap(QPixmap(fname))43 def getText(self):44 dialog=QFileDialog()45 dialog.setFileMode(QFileDialog.AnyFile)#可选任意文件46 dialog.setFilter(QDir.Files)47 48 if dialog.exec_():#该方法用于选择文件,如果选中文件则返回true49 filenames=dialog.selectedFiles()#获取选中文件名列表50 print(filenames)51 f=open(filenames[0],'r')52 with f:53 data=f.read()54 self.contents.setText(data)55 56 57 if __name__=="__main__":58 app=QApplication(sys.argv)59 win=WindowClass()60 win.show()61 sys.exit(app.exec_())