8.4 QFileDialog文件选择对话框
一、QFileDialog文件选择对话框
1.基本概念
- QFileDialog文件选择对话框是一个提供文件或者文件夹选择的对话框控件,一般使用非模态展示。
- 这里一定要注意构造函数的使用,这是重中之重,通过构造函数我们就可以完成绝大多数常用功能的设置。
2.代码
点击查看代码
from PyQt5.Qt import *
import sys
class Window(QWidget) :
def __init__(self) :
super().__init__()
self.setWindowTitle("QFileDialog文件选择对话框 - PyQt5中文网")
self.resize(600, 500)
self.func_list()
def func_list(self) :
self.func()
def func(self) :
## 案例:按钮促发打开文件的方法--可以用于选择视频、图片时使用
btn = QPushButton(self)
btn.move(200, 200)
btn.setText('打开对话框')
btn.resize(100, 30)
btn.clicked.connect(lambda : fd.show())
# 1.构造方法
fd = QFileDialog(self, '文件选择') #第一种
# fd = QFileDialog(self, '文件选择', './', 'all(*.*);;images(*.png *.jpg);;python(*.py)') #第二种 './'表示当前路径 'all(*.*);;images(*.png *.jpg);;python(*.py)'表示限制条件
'''
2.静态方法
# 获取文件:只能获取文件路径
# QFileDialog.getOpenFileName() #获取名称
# QFileDialog.getOpenFileNames()
# QFileDialog.getOpenFileUrl() #获取地址
# QFileDialog.getOpenFileUrls()
# QFileDialog.getSaveFileName()
# QFileDialog.getSaveFileUrl()
'''
# #参数:父控件, 控件标题, 路径, 文件类型, 默认文件类型
# res = QFileDialog.getOpenFileName(self, '文件选择', './', 'all(*.*);;images(*.png *.jpg);;python(*.py)', 'all(*.*)')
# res = QFileDialog.getOpenFileNames(self, '文件选择', './', 'all(*.*);;images(*.png *.jpg);;python(*.py)', 'all(*.*)')
# print(res)
'''
# 3.获取文件夹
# QFileDialog.getExistingDirectory() #
# QFileDialog.getExistingDirectoryUrl() #
'''
# # res = QFileDialog.getOpenFileNames(self, '文件选择', './')
# res = QFileDialog.getExistingDirectoryUrl(self, '文件选择', QUrl('./'))
# print(res)
'''
# 4.接收模式和保存模式
# QFileDialog.AcceptSave #保存模式
# QFileDialog.AcceptOpen #打开模式
'''
# fd.setAcceptMode(QFileDialog.AcceptSave) # 必须要有文件后缀名
# #fd.setAcceptMode(QFileDialog.AcceptOpen)
# fd.setDefaultSuffix('jpg') # 设置默认文件后缀名
# 5.选择文件模式
# fd.setFileMode(QFileDialog.Directory) # 选择目录
# fd.setFileMode(QFileDialog.AnyFile) # 选择文件
# fd.setFileMode(QFileDialog.ExistingFile) # 选择单个现有文件
# fd.setFileMode(QFileDialog.ExistingFiles) # 选择多个现有文件
## 6.设置名称过滤器
#fd.setNameFilter('image(*.jpg *.png)')
#fd.setNameFilters(['all(*.*)', 'images(*.png *.jpg)', 'python(*.py)'])
## 7.显示信息的详细程度,系统不兼容
#fd.setViewMode(QFileDialog.List)
#fd.setViewMode(QFileDialog.Detail)
## 8.设置指定角色的标签名称
# fd.setLabelText(QFileDialog.FileName, '选择文件')
# fd.setLabelText(QFileDialog.Accept, '确定')
# fd.setLabelText(QFileDialog.Reject, '取消')
# fd.setLabelText(QFileDialog.FileType, '文件后缀')
# fd.setLabelText(QFileDialog.LookIn, '目录')
'''
# 9.可用信号
# fd.currentChanged() # 当前路径发生改变
# fd.currentUrlChanged(QUrl) # 当前路径URL改变
# fd.directoryEntered() # 进入选中文件夹
# fd.directoryUrlEntered(QUrl) # 进入选中文件夹URL时
# fd.filterSelected() # 选择名称后缀过滤器时
# fd.fileSelected() # 单个文件被选中
# fd.fileSelected() # 多个文件被选中
# fd.urlSelected() # 单个url被选中
# fd.urlsSelected() # 多个url被选中
'''
fd.currentChanged.connect(lambda str: print('当前路径发生改变', str))
fd.filterSelected.connect(lambda filter: print('当前名称过滤器发生改变', filter))
pass
if __name__ == '__main__' :
app = QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec_())
分类:
可视化界面 / PYQT5
标签:
python可视化
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· 单线程的Redis速度为什么快?
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码