QFileDialog控件的作用
QFileDialog 是用于打开和保存文件的标准对话框。
QFileDialog在打开文件时使用了文件过滤器,用于显示指定扩展名的文件。也可以设置使用QFileDialog打开文件时的起始目录和指定扩展名的文件。
QFileDialog控件常用方法
代码示例
# -*- coding: utf-8 -*- import sys from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import * class filedialogdemo(QWidget): def __init__(self, parent=None): super(filedialogdemo, self).__init__(parent) layout = QVBoxLayout() self.btn = QPushButton("加载图片") self.btn.clicked.connect(self.getfile) layout.addWidget(self.btn) self.le = QLabel("") layout.addWidget(self.le) self.btn1 = QPushButton("加载文本文件") self.btn1.clicked.connect(self.getfiles) layout.addWidget(self.btn1) self.contents = QTextEdit() layout.addWidget(self.contents) self.setLayout(layout) self.setWindowTitle("File Dialog 示例") def getfile(self): # 弹出的窗口名称:'Open file' # 默认打开的目录:'c:\\' # 只能打开.jpg与.gif结尾的图片文件 fname, _ = QFileDialog.getOpenFileName(self, 'Open file', 'c:\\',"Image files (*.jpg *.gif)") self.le.setPixmap(QPixmap(fname)) def getfiles(self): dlg = QFileDialog() dlg.setFileMode(QFileDialog.AnyFile) # QFileDialog.ExistingFiles可选择打开多个文件,返回文件路径列表 # dlg.setFileMode(QFileDialog.ExistingFiles) dlg.setFilter(QDir.Files) if dlg.exec_(): # 返回的是打开文件的路径列表 filenames= dlg.selectedFiles() print(filenames) with open(filenames[0], 'r') as f: data = f.read() self.contents.setText(data) if __name__ == '__main__': app = QApplication(sys.argv) ex = filedialogdemo() ex.show() sys.exit(app.exec_())
代码运行结果:
打开图片和文本文件后: