1、介绍
这是pyqt的文件选择窗口。
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
- 如果取消,返回”
- 如果选中,返回绝对路径
- 可以在打开的窗口中新建,然后再选中