介绍

QDialog类的子类主要有QMessageBox、QFileDialog、QFontDialog、QInputDialog等。

方法

方法

描述

getOpenFileName()

返回用户所选择文件的名称,并打开该文件

getSaveFileName()

使用用户选择的文件名并保存文件

setFileMode()

可以选择的文件类型,枚举常量是:

QFileDialog.AnyFile,任何文件

QFileDialog.ExistingFile,已存在的文件

QFileDialog.Directory,文件目录

QFileDialog.ExistingFiles,已经存在的多个文件

setFilter()

设置过滤器,只显示过滤器允许的文件类型

QFileDialog的使用

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):
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)
dlg.setFilter( QDir.Files )

if dlg.exec_():
filenames= dlg.selectedFiles()
f = open(filenames[0], 'r')

with f:
data = f.read()
self.contents.setText(data)

if __name__ == '__main__':
app = QApplication(sys.argv)
ex = filedialogdemo()
ex.show()
sys.exit(app.exec_())

使用展示

文件对话框QFileDialog_文件对话框

文件对话框QFileDialog_保存文件_02文件对话框QFileDialog_保存文件_03

后记

文件对话框QFileDialog,又过去了一天。