QT 官方文档参考地址:https://doc.qt.io/qt-5/qfiledialog.html
QFileDialog
类提供了一个允许用户选择文件或目录的对话框,在 PyQt5.QtWidgets
的模块中。
1、 enum AcceptMode
对话框的接受模式,定义对话框是用于打开还是保存文件。
AcceptOpen
:打开文件AcceptSave
:保存文件2、 enum DialogLabel
对话框中的标签,可使用 setLabelText()
设置标签上的文本。
LookIn
FileName
FileType
Accept
Reject
3、 enum FileMode
此枚举用于指示用户可以在文件对话框中选择什么,即如果用户单击确定,对话框将返回什么。
AnyFile
:文件名,不管它是否存在。ExistingFile
:单个现有文件的名称。Directory
:目录的名称。 显示文件和目录。ExistingFiles
:零个或多个现有文件的名称。4、 enum Option
ShowDirsOnly
:只在文件对话框中显示目录。(仅在目录文件模式(Directory)下有效。)DontResolveSymlinks
:不解析文件对话框中的符号链接。DontConfirmOverwrite
:如果选择了现有文件,则不要求确认。DontUseNativeDialog
:不要使用本机文件对话框。ReadOnly
:表示模型是只读的。DontUseCustomDirectoryIcons
:始终使用默认目录图标。5、flags Options
保存对话框参数设置
6、enum ViewMode
这个枚举描述了文件对话框的视图模式,即将显示有关每个文件的哪些信息。
Detail
:显示目录中每个项目的图标、名称和详细信息。List
:仅显示目录中每个项目的图标和名称。1、acceptMode
(类型:AcceptMode
)
此属性保存对话框的接受模式,定义对话框是用于打开还是保存文件。
默认情况下,此属性设置为AcceptOpen。
2、defaultSuffix
(类型: QString
)
默认后缀。
此属性指定一个字符串,它将被添加到文件名中。后缀通常用于表示文件类型(例如“txt”表示文本文件)。
如果第一个字符是点 (‘.’),则将其删除。
3、fileMode
(类型:FileMode
)
对话框的文件模式。文件模式定义了用户希望在对话框中选择的项目的数量和类型。
默认为 AnyFile。
4、options
(类型:Options
)
影响对话框外观的各种选项。默认情况下,所有选项都被禁用。
选项应在显示对话框之前设置。
5、supportedSchemes
(类型:QStringList
)
文件对话框应允许导航到的 URL 方案。
6、viewMode
(类型:ViewMode
)
文件和目录在对话框中的显示方式。
1、QFileDialog::AcceptMode acceptMode
() const
获取对话框的接受模式,是用于打开还是保存文件。
2、void setAcceptMode
(QFileDialog::AcceptMode mode)
设置对话框的接受模式,是用于打开还是保存文件。
文件
路径:QFileDialog::getOpenFileName
// C++
QString QFileDialog::getOpenFileName (
QWidget * parent = 0, // parent,用于指定父组件。
const QString & caption = QString(), // caption,是对话框的标题;
const QString & dir = QString(), //dir,是对话框显示时默认打开的目录
const QString & filter = QString(), // filter,是对话框的后缀名过滤器
QString * selectedFilter = 0, // selectedFilter,是默认选择的过滤器
Options options = 0 ) // options,是对话框的一些参数设定
# python
getOpenFileName(parent: QWidget | None = ...,
caption: str = ...,
directory: str = ...,
filter: str = ...,
initialFilter: str = ...,
options: Options | Option = ...
) -> Tuple[str, str] # 返回一个元组 (path,selectedFilter)
parent
:用于指定父组件,如果parent不是nullptr,那么它将把对话框定位在parent的标题栏下方。caption
:QFileDialog对话框的标题dir
:对话框显示时默认打开的目录filter
:对话框中文扩展名的过滤器。文件对话框只显示与给定过滤器匹配的文件。
;;
例如: "Images (*.png *.xpm *.jpg);;Text files (*.txt);;XML files (*.xml)"
selectedFilter
:默认选择的过滤器options
:options参数包含关于如何运行对话框的各种选项,有关可以传递的标志的更多信息,请参阅QFileDialog:Option enum。Python 代码示例:
# 在python 中 getOpenFileName 的返回值是一个元组,包含选择的文件路径和过滤器
fname ,_ = QFileDialog.getOpenFileName(
#fname ,_ = QFileDialog.getOpenFileNames( 选择多个文件
self.ui,
'选择音频文件路径',
'./',
'files type(*.mp3 *.mp4);;Images (*.png *.xpm *.jpg)')
# 返回值示例:('E:/mp3/这世界那么多人-莫文蔚.mp3', 'files type(*.mp3 *.mp4)')
文件夹
路径:QFileDialog::getExistingDirectory
// C++
QString QFileDialog::getExistingDirectory(
QWidget *parent = nullptr, // parent,用于指定父组件。
const QString &caption = QString(), // caption,是对话框的标题;
const QString &dir = QString(), //dir,是对话框显示时默认打开的目录
QFileDialog::Options options = ShowDirsOnly) // options,是对话框的一些参数设定
# python
getExistingDirectory(parent: QWidget | None = ...,
caption: str = ...,
directory: str = ...,
options: Options | Option = ...
) -> str # 返回 文件夹 path
parent
:用于指定父组件,如果parent不是nullptr,那么它将把对话框定位在parent的标题栏下方。caption
:QFileDialog对话框的标题dir
:对话框显示时默认打开的目录options
:options参数包含关于如何运行对话框的各种选项,有关可以传递的标志的更多信息,请参阅QFileDialog:Option enum。
ShowDirsOnly
:只在文件对话框中显示目录。默认情况下,同时显示文件和目录。(仅在目录文件模式下有效。)Python 代码示例:
dirpath = QFileDialog.getExistingDirectory(
self.ui,
'选择音频文件路径',
'./',
QFileDialog.Option.ShowDirsOnly)
pass
更多参考:https://blog.csdn.net/kenfan1647/article/details/122910283