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、示例

posted @ 2023-10-01 19:56  挖洞404  阅读(99)  评论(0编辑  收藏  举报