pyqt5-QFileDialog文件对话框

发布时间 2023-07-03 02:58:34作者: 挖洞404

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)')

(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键

(3)保存文件

getSaveFileName(parent: QWidget = None, caption: str = '', directory: str = '', filter: str = '', initialFilter: str = '', options: Union[QFileDialog.Options, QFileDialog.Option] = 0) -> Tuple[str, str]
  • 其在弹窗之后有两种方案,一是选择一个已经存在的文件,二是在目录下编辑新文件的文件名,注意这里并不会直接创建文件,而仅仅返回文件路径

(4)选择文件夹

getExistingDirectory(parent: QWidget = None, caption: str = '', directory: str = '', options: Union[QFileDialog.Options, QFileDialog.Option] = QFileDialog.ShowDirsOnly) -> str
  • 如果取消,返回”
  • 如果选中,返回绝对路径
  • 可以在打开的窗口中新建,然后再选中

3、示例