pyqt5-QFileDialog文件对话框组件
1、介绍
QFileDialog提供了文件选择窗口与处理。
2、方法
(1)单一文件选择
getOpenFileName(parent: QWidget = None, caption: str = '', directory: str = '', filter: str = '', initialFilter: str = '', options: Union[QFileDialog.Options, QFileDialog.Option] = 0) -> Tuple[str, str]
- 返回元组,第一个元素为选中的绝对路径,第二个为可供选择的文件类型
- 如果是取消,则返回(”, ”)
- parent:组件对象,表示弹窗所属
- caption:标题
- directory:打开时的路径
- filter:过滤,其根据()内的项做正则匹配,比如*b.txt也是可行的
filePath,_ = QFileDialog.getOpenFileName(
self.w, # 父窗口对象
"选择你要上传的图片", # 标题
r"d:\\data", # 起始目录
"图片类 (*.pg *.jpg *.bmp)" # 选择类型过滤项,过滤内容在括号中
)
# ('I:/1.jpg', '图片类 (*.pg *.jpg *.bmp)')
选择结果示例:K:/abc/tomcat.txt
(2)多文件选择
getOpenFileNames(parent: QWidget = None, caption: str = '', directory: str = '', filter: str = '', initialFilter: str = '', options: Union[QFileDialog.Options, QFileDialog.Option] = 0) -> Tuple[List[str], str]
- 使用方法与单文件选择一致,返回元组,第一个元素为str的列表,如果未选择,返回空的list。做多项选择时,按住ctrl键
2.3 保存文件
getSaveFileName(parent: QWidget = None, caption: str = '', directory: str = '', filter: str = '', initialFilter: str = '', options: Union[QFileDialog.Options, QFileDialog.Option] = 0) -> Tuple[str, str]
- 无论何种操作,最终都会返回(str, str)类型的数据,其元素0为选择文件的绝对路径,元素1为类型声明。
- 如果未选择文件,点击取消,返回('', '')
- 如果是选择已创建文件,或者是手动输入已存在的文件名,系统会询问是否确认选择。点击确认则结束选择,点击否则会继续选择
- 类型声明并不会包含在选择的路径中
- 无论是选择已创建文件还是未创建文件,选择过程中都不会造成影响,仅仅只是确定路径
(4)选择文件夹
getExistingDirectory(parent: QWidget = None, caption: str = '', directory: str = '', options: Union[QFileDialog.Options, QFileDialog.Option] = QFileDialog.ShowDirsOnly) -> str
- 如果取消,返回”
- 如果选中,返回绝对路径
- 可以在打开的窗口中新建,然后再选中
3、示例