PySide6.QtWidgets.QFileDialog¶
- class QFileDialog¶
QFileDialog
类提供了一个对话框,允许用户选择文件或目录。更多…概要¶
属性¶
acceptModeᅟ
- 对话框的接受模式defaultSuffixᅟ
- 如果没有指定其他后缀,则添加到文件名的后缀fileModeᅟ
- 对话框的文件模式optionsᅟ
- 影响对话框外观和感觉的各种选项supportedSchemesᅟ
- 文件对话框应允许导航到的URL方案viewModeᅟ
- 对话框中文件和目录的显示方式
方法¶
def
__init__()
def
acceptMode()
def
defaultSuffix()
def
directory()
def
directoryUrl()
def
fileMode()
def
filter()
def
history()
def
iconProvider()
def
itemDelegate()
def
labelText()
def
nameFilters()
def
open()
def
options()
def
proxyModel()
def
restoreState()
def
saveState()
def
selectFile()
def
selectUrl()
def
selectedFiles()
def
selectedUrls()
def
setAcceptMode()
def
setDirectory()
def
setFileMode()
def
setFilter()
def
setHistory()
def
setLabelText()
def
setNameFilter()
def
setNameFilters()
def
setOption()
def
setOptions()
def
setProxyModel()
def
setSidebarUrls()
def
setViewMode()
def
sidebarUrls()
def
testOption()
def
viewMode()
信号¶
def
currentChanged()
def
fileSelected()
def
filesSelected()
def
filterSelected()
def
urlSelected()
def
urlsSelected()
静态函数¶
def
getOpenFileUrl()
def
getSaveFileUrl()
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
QFileDialog
类使用户能够遍历文件系统以选择一个或多个文件或一个目录。创建
QFileDialog
的最简单方法是使用静态函数,例如getOpenFileName()
。fileName = QFileDialog.getOpenFileName(self, tr("Open Image"), "/home/jana", tr("Image Files (*.png *.jpg *.bmp)"))
在上面的例子中,使用静态函数创建了一个模态
QFileDialog
。对话框最初显示“/home/jana”目录的内容,并显示与字符串“Image Files (*.png *.jpg *.bmp)”中给定的模式匹配的文件。文件对话框的父级设置为this,窗口标题设置为“Open Image”。如果你想使用多个过滤器,请用两个分号分隔每个过滤器。例如:
"Images (*.png *.xpm *.jpg);;Text files (*.txt);;XML files (*.xml)"
你可以不使用静态函数创建你自己的
QFileDialog
。通过调用setFileMode()
,你可以指定用户在对话框中必须选择的内容:dialog = QFileDialog(self) dialog.setFileMode(QFileDialog.AnyFile)
在上面的例子中,文件对话框的模式被设置为
AnyFile
,这意味着用户可以选择任何文件,甚至可以指定一个不存在的文件。此模式对于创建“另存为”文件对话框非常有用。如果用户必须选择一个已存在的文件,请使用ExistingFile
,如果只能选择一个目录,请使用Directory
。有关模式的完整列表,请参见FileMode
枚举。fileMode
属性包含对话框的操作模式;这表示用户预期选择的对象类型。使用setNameFilter()
来设置对话框的文件过滤器。例如:dialog.setNameFilter(tr("Images (*.png *.xpm *.jpg)"))
在上面的例子中,过滤器设置为
"Images (*.png *.xpm *.jpg)"
。这意味着只有扩展名为png
、xpm
或jpg
的文件会在QFileDialog
中显示。你可以通过使用setNameFilters()
来应用多个过滤器。使用selectNameFilter()
来选择你提供的过滤器之一作为文件对话框的默认过滤器。文件对话框有两种视图模式:
List
和Detail
。List
将当前目录的内容显示为文件和目录名称的列表。Detail
也显示文件和目录名称的列表,但会提供每个名称旁边的附加信息,例如文件大小和修改日期。使用setViewMode()
设置模式:dialog.setViewMode(QFileDialog.Detail)
创建自己的文件对话框时需要使用的最后一个重要函数是
selectedFiles()
。fileNames = QStringList() if dialog.exec(): fileNames = dialog.selectedFiles()
在上面的例子中,创建并显示了一个模态文件对话框。如果用户点击了确定,他们选择的文件将被放入
fileName
中。对话框的工作目录可以通过
setDirectory()
设置。当前目录中的每个文件可以使用selectFile()
函数进行选择。标准对话框示例展示了如何使用
QFileDialog
以及其他内置的Qt对话框。默认情况下,如果平台有原生文件对话框,则使用平台原生的文件对话框。在这种情况下,原本用于构建对话框的小部件不会被实例化,因此相关的访问器如
layout()
和itemDelegate()
会返回null。此外,并非所有平台都显示带有标题栏的文件对话框,因此请注意,标题文本可能对用户不可见。您可以设置DontUseNativeDialog
选项或设置AA_DontUseNativeDialogs应用程序属性,以确保使用基于小部件的实现而不是原生对话框。另请参阅
QColorDialog
QFontDialog
标准对话框示例- class ViewMode¶
此枚举描述了文件对话框的视图模式;即显示每个文件的哪些信息。
常量
描述
QFileDialog.Detail
显示目录中每个项目的图标、名称和详细信息。
QFileDialog.List
仅显示目录中每个项目的图标和名称。
另请参阅
- class FileMode¶
此枚举用于指示用户可以在文件对话框中选择什么;也就是说,如果用户点击确定,对话框将返回什么。
常量
描述
QFileDialog.AnyFile
文件的名称,无论它是否存在。
QFileDialog.ExistingFile
单个现有文件的名称。
QFileDialog.Directory
目录的名称。文件和目录都会显示。然而,原生的Windows文件对话框不支持在目录选择器中显示文件。
QFileDialog.ExistingFiles
零个或多个现有文件的名称。
另请参阅
- class AcceptMode¶
常量
描述
QFileDialog.AcceptOpen
QFileDialog.AcceptSave
- class DialogLabel¶
常量
描述
QFileDialog.LookIn
QFileDialog.FileName
QFileDialog.FileType
QFileDialog.Accept
QFileDialog.Reject
- class Option¶
(继承自
enum.Flag
) 影响对话框行为的选项。常量
描述
QFileDialog.ShowDirsOnly
仅显示目录。默认情况下,文件和目录都会显示。此选项仅在
Directory
文件模式下有效。QFileDialog.DontResolveSymlinks
不解析符号链接。默认情况下,符号链接会被解析。
QFileDialog.DontConfirmOverwrite
如果选择了现有文件,不要请求确认。默认情况下,会请求确认。此选项仅在
acceptMode
为AcceptSave
时有效。此外,在macOS上,此选项不用于原生文件对话框。QFileDialog.DontUseNativeDialog
不使用平台原生的文件对话框,而是使用Qt提供的基于小部件的对话框。默认情况下,除非你使用了包含Q_OBJECT宏的
QFileDialog
子类,设置了全局的AA_DontUseNativeDialogs应用程序属性,或者平台没有你所需类型的原生对话框,否则会显示原生文件对话框。为了使此选项生效,你必须在更改对话框的其他属性或显示对话框之前设置它。QFileDialog.ReadOnly
表示模型是只读的。
QFileDialog.HideNameFilterDetails
指示文件名过滤器详细信息是否隐藏。
QFileDialog.DontUseCustomDirectoryIcons
始终使用默认的目录图标。某些平台允许用户设置不同的图标,但自定义图标查找可能会导致在网络或可移动驱动器上出现显著的性能问题。设置此选项将在
iconProvider()
中启用DontUseCustomDirectoryIcons选项。此枚举值在Qt 5.2中添加。另请参阅
注意
当使用
from __feature__ import true_property
时,属性可以直接使用,否则通过访问器函数使用。- property acceptModeᅟ: QFileDialog.AcceptMode¶
此属性保存对话框的接受模式。
操作模式定义了对话框是用于打开还是保存文件。
默认情况下,此属性设置为
AcceptOpen
。另请参阅
- Access functions:
- property defaultSuffixᅟ: str¶
如果没有指定其他后缀,此属性将保存添加到文件名中的后缀。
此属性指定一个字符串,如果文件名还没有后缀,则将其添加到文件名中。后缀通常用于指示文件类型(例如,“txt”表示文本文件)。
如果第一个字符是点('.'),则将其删除。
- Access functions:
- property fileModeᅟ: QFileDialog.FileMode¶
此属性保存对话框的文件模式。
文件模式定义了用户在对话框中预期选择的项目的数量和类型。
默认情况下,此属性设置为
AnyFile
。此函数为
FileName
和Accept
DialogLabel
设置标签。在调用setFileMode()后,可以设置自定义文本。另请参阅
- Access functions:
- property optionsᅟ: Combination of QAbstractFileIconProvider.Option¶
此属性包含影响对话框外观和感觉的各种选项。
默认情况下,所有选项都被禁用。
选项(特别是
DontUseNativeDialog
选项)应在更改对话框属性或显示对话框之前设置。在对话框可见时设置选项不保证会立即对对话框产生影响(取决于选项和平台)。
在更改其他属性后设置选项可能会导致这些值无效。
另请参阅
- Access functions:
- property supportedSchemesᅟ: list of strings¶
此属性保存文件对话框应允许导航到的URL方案。
设置此属性可以限制用户可以选择URL的类型。这是应用程序声明其支持获取文件内容的协议的一种方式。空列表意味着不应用任何限制(默认)。对本地文件(“file”方案)的支持是隐式的,并且始终启用;不需要将其包含在限制中。
- Access functions:
- property viewModeᅟ: QFileDialog.ViewMode¶
此属性保存文件和目录在对话框中显示的方式。
默认情况下,
Detail
模式用于显示有关文件和目录的信息。另请参阅
- Access functions:
- __init__(parent, f)¶
- Parameters:
parent –
QWidget
f –
WindowType
的组合
使用给定的
parent
和小部件flags
构建一个文件对话框。- __init__([parent=None[, caption=""[, directory=""[, filter=""]]]])
- Parameters:
parent –
QWidget
caption – str
directory – str
filter – str
使用给定的
parent
和caption
构建一个文件对话框,该对话框最初显示指定directory
的内容。在对话框中显示目录内容之前,会使用由filter
指定的分号分隔的过滤器列表进行过滤。- acceptMode()¶
- Return type:
另请参阅
属性
acceptModeᅟ
的获取器。- currentChanged(path)¶
- Parameters:
路径 – 字符串
当当前文件因本地操作而更改时,会发出此信号,并将新文件名作为
path
参数。另请参阅
当当前文件发生变化时,会发出此信号,并将新文件的URL作为
url
参数。另请参阅
- defaultSuffix()¶
- Return type:
字符串
另请参阅
属性
defaultSuffixᅟ
的获取器。返回对话框中当前显示的目录。
另请参阅
- directoryEntered(directory)¶
- Parameters:
目录 – str
当用户进入
directory
时,此信号会为本地操作发出。返回对话框中当前显示的目录的URL。
另请参阅
当用户进入一个
directory
时,会发出此信号。- fileMode()¶
- Return type:
另请参阅
属性
fileModeᅟ
的获取器。- fileSelected(file)¶
- Parameters:
文件 – str
当本地操作的选择发生变化并且对话框被接受时,会发出此信号,并带有(可能为空的)选定的
file
。另请参阅
- filesSelected(files)¶
- Parameters:
files – 字符串列表
当本地操作的选择发生变化并且对话框被接受时,会发出此信号,并带有(可能为空的)
selected
文件列表。另请参阅
返回用于显示文件的过滤器。
另请参阅
- filterSelected(filter)¶
- Parameters:
filter – 字符串
当用户选择一个
filter
时,会发出此信号。- static getExistingDirectory([parent=None[, caption=""[, dir=""[, options=QFileDialog.Option.ShowDirsOnly]]]])¶
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
这是一个方便的静态函数,返回用户选择的现有目录。
dir = QFileDialog.getExistingDirectory(self, tr("Open Directory"),() "/home", QFileDialog.ShowDirsOnly | QFileDialog.DontResolveSymlinks)
此函数使用给定的
parent
小部件创建一个模态文件对话框。如果parent
不是None
,对话框将显示在父小部件的中心位置。对话框的工作目录设置为
dir
,标题设置为caption
。这两个都可以是空字符串,在这种情况下,将分别使用当前目录和默认标题。options
参数包含有关如何运行对话框的各种选项。有关可以传递的标志的更多信息,请参见Option
枚举。为了确保显示本机文件对话框,必须设置ShowDirsOnly
。在Windows和macOS上,此静态函数使用本机文件对话框,而不是
QFileDialog
。然而,本机Windows文件对话框不支持在目录选择器中显示文件。您需要传递DontUseNativeDialog
选项,或设置全局\l{Qt::}{AA_DontUseNativeDialogs}应用程序属性,以使用QFileDialog
显示文件。请注意,macOS 原生文件对话框不显示标题栏。
在Unix/X11上,文件对话框的正常行为是解析并跟随符号链接。例如,如果
/usr/tmp
是/var/tmp
的符号链接,文件对话框在进入/usr/tmp
后会切换到/var/tmp
。如果options
包含DontResolveSymlinks
,文件对话框将符号链接视为普通目录。在Windows上,对话框会启动一个阻塞的模态事件循环,该循环不会分发任何QTimers,如果
parent
不是None
,则对话框会定位在父窗口标题栏的正下方。- static getExistingDirectoryUrl([parent=None[, caption=""[, dir=QUrl()[, options=QFileDialog.Option.ShowDirsOnly[, supportedSchemes=list()]]]]])¶
这是一个方便的静态函数,返回用户选择的现有目录。如果用户按下取消,则返回一个空的URL。
该函数的使用方式类似于
getExistingDirectory()
。特别是parent
、caption
、dir
和options
的使用方式完全相同。与
getExistingDirectory()
的主要区别在于用户可以选择远程目录。这就是为什么返回类型和dir
的类型是QUrl。supportedSchemes
参数允许限制用户能够选择的URL类型。这是应用程序声明其支持获取文件内容的协议的一种方式。空列表意味着不应用任何限制(默认)。对本地文件(“file”方案)的支持是隐式的,并且始终启用;不需要将其包含在限制中。在可能的情况下,此静态函数使用本机文件对话框,而不是
QFileDialog
。在不支持选择远程文件的平台上,Qt 只允许选择本地文件。- static getOpenFileName([parent=None[, caption=""[, dir=""[, filter=""[, selectedFilter=""[, options=QFileDialog.Options()]]]]]])¶
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
这是一个方便的静态函数,返回用户选择的现有文件。如果用户按下取消,它将返回一个空字符串。
fileName = QFileDialog.getOpenFileName(self, tr("Open File"),() "/home", tr("Images (*.png *.xpm *.jpg)"))
该函数使用给定的
parent
小部件创建一个模态文件对话框。如果parent
不是None
,对话框将显示在父小部件的中心位置。文件对话框的工作目录设置为
dir
。如果dir
包含文件名,则选择该文件。仅显示与给定filter
匹配的文件。选定的过滤器设置为selectedFilter
。参数dir
、selectedFilter
和filter
可能为空字符串。如果需要多个过滤器,请用‘;;’分隔,例如:"Images (*.png *.xpm *.jpg);;Text files (*.txt);;XML files (*.xml)"
options
参数包含有关如何运行对话框的各种选项。有关可以传递的标志的更多信息,请参见Option
枚举。对话框的标题设置为
caption
。如果未指定caption
,则将使用默认标题。在Windows和macOS上,此静态函数使用本机文件对话框,而不是
QFileDialog
。请注意,macOS本机文件对话框不显示标题栏。在Windows上,对话框会启动一个阻塞的模态事件循环,该循环不会分发任何QTimers,如果
parent
不是None
,则对话框将定位在父窗口标题栏的正下方。在Unix/X11上,文件对话框的正常行为是解析并跟随符号链接。例如,如果
/usr/tmp
是/var/tmp
的符号链接,文件对话框在进入/usr/tmp
后会切换到/var/tmp
。如果options
包含DontResolveSymlinks
,文件对话框将符号链接视为普通目录。- static getOpenFileNames([parent=None[, caption=""[, dir=""[, filter=""[, selectedFilter=""[, options=QFileDialog.Options()]]]]]])¶
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
这是一个方便的静态函数,返回用户选择的一个或多个现有文件。
files = QFileDialog.getOpenFileNames(() self, "Select one or more files to open", "/home", "Images (*.png *.xpm *.jpg)")
此函数使用给定的
parent
小部件创建一个模态文件对话框。如果parent
不是None
,对话框将显示在父小部件的中心位置。文件对话框的工作目录设置为
dir
。如果dir
包含文件名,则选择该文件。过滤器设置为filter
,以便仅显示与过滤器匹配的文件。选择的过滤器设置为selectedFilter
。参数dir
、selectedFilter
和filter
可以为空字符串。如果需要多个过滤器,请用‘;;’分隔它们,例如:"Images (*.png *.xpm *.jpg);;Text files (*.txt);;XML files (*.xml)"
对话框的标题设置为
caption
。如果未指定caption
,则使用默认标题。在Windows和macOS上,此静态函数使用本机文件对话框,而不是
QFileDialog
。请注意,macOS本机文件对话框不显示标题栏。在Windows上,对话框会启动一个阻塞的模态事件循环,该循环不会分发任何QTimers,如果
parent
不是None
,则对话框会定位在父窗口标题栏的正下方。在Unix/X11上,文件对话框的正常行为是解析并跟随符号链接。例如,如果
/usr/tmp
是/var/tmp
的符号链接,文件对话框在进入/usr/tmp
后会变为/var/tmp
。options
参数包含有关如何运行对话框的各种选项,有关可以传递的标志的更多信息,请参见Option
枚举。- static getOpenFileUrl([parent=None[, caption=""[, dir=QUrl()[, filter=""[, selectedFilter=""[, options=QFileDialog.Options()[, supportedSchemes=list()]]]]]]])¶
这是一个方便的静态函数,返回用户选择的现有文件。如果用户按下取消,则返回一个空的URL。
该函数的使用方式与
getOpenFileName()
类似。特别是parent
、caption
、dir
、filter
、selectedFilter
和options
的使用方式完全相同。与
getOpenFileName()
的主要区别在于用户可以选择远程文件。这就是为什么返回类型和dir
的类型是QUrl。supportedSchemes
参数允许限制用户能够选择的URL类型。这是应用程序声明它将支持以获取文件内容的协议的一种方式。空列表意味着不应用任何限制(默认)。对本地文件(“file”方案)的支持是隐式的,并且始终启用;不需要将其包含在限制中。在可能的情况下,此静态函数使用本机文件对话框,而不是
QFileDialog
。在不支持选择远程文件的平台上,Qt将只允许选择本地文件。- static getOpenFileUrls([parent=None[, caption=""[, dir=QUrl()[, filter=""[, selectedFilter=""[, options=QFileDialog.Options()[, supportedSchemes=list()]]]]]]])¶
这是一个方便的静态函数,返回用户选择的一个或多个现有文件。如果用户按下取消,它将返回一个空列表。
该函数的使用方式类似于
getOpenFileNames()
。特别是parent
、caption
、dir
、filter
、selectedFilter
和options
的使用方式完全相同。与
getOpenFileNames()
的主要区别在于用户可以选择远程文件。这就是为什么返回类型和dir
的类型分别是QList和QUrl。 supportedSchemes
参数允许限制用户可以选择URL的类型。这是应用程序声明其支持获取文件内容的协议的一种方式。空列表意味着不应用任何限制(默认)。对本地文件(“file”方案)的支持是隐式的,并且始终启用;不需要将其包含在限制中。在可能的情况下,此静态函数使用本机文件对话框,而不是
QFileDialog
。在不支持选择远程文件的平台上,Qt 将只允许选择本地文件。- static getSaveFileName([parent=None[, caption=""[, dir=""[, filter=""[, selectedFilter=""[, options=QFileDialog.Options()]]]]]])¶
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
这是一个方便的静态函数,返回用户选择的文件名。文件不需要存在。
它使用给定的
parent
小部件创建一个模态文件对话框。如果parent
不是None
,对话框将显示在父小部件的中心位置。fileName = QFileDialog.getSaveFileName(self, tr("Save File"),() "/home/jana/untitled.png", tr("Images (*.png *.xpm *.jpg)"))
文件对话框的工作目录设置为
dir
。如果dir
包含文件名,则选择该文件。仅显示与filter
匹配的文件。选择的过滤器设置为selectedFilter
。参数dir
、selectedFilter
和filter
可能为空字符串。多个过滤器用‘;;’分隔。例如:"Images (*.png *.xpm *.jpg);;Text files (*.txt);;XML files (*.xml)"
options
参数包含有关如何运行对话框的各种选项,有关可以传递的标志的更多信息,请参阅Option
枚举。可以通过将
selectedFilter
设置为所需的值来选择默认过滤器。对话框的标题设置为
caption
。如果未指定caption
,则使用默认标题。在Windows和macOS上,此静态函数使用本机文件对话框,而不是
QFileDialog
。在Windows上,对话框会启动一个阻塞的模态事件循环,该循环不会分发任何QTimers,如果
parent
不是None
,则对话框会定位在父窗口标题栏的正下方。在macOS上,使用其本机文件对话框时,过滤器参数将被忽略。在Unix/X11上,文件对话框的正常行为是解析并跟随符号链接。例如,如果
/usr/tmp
是/var/tmp
的符号链接,文件对话框在进入/usr/tmp
后会切换到/var/tmp
。如果options
包含DontResolveSymlinks
,文件对话框将符号链接视为普通目录。- static getSaveFileUrl([parent=None[, caption=""[, dir=QUrl()[, filter=""[, selectedFilter=""[, options=QFileDialog.Options()[, supportedSchemes=list()]]]]]]])¶
这是一个方便的静态函数,用于返回用户选择的文件。该文件不必存在。如果用户按下取消,它将返回一个空的URL。
该函数的使用方式与
getSaveFileName()
类似。特别是parent
、caption
、dir
、filter
、selectedFilter
和options
的使用方式完全相同。与
getSaveFileName()
的主要区别在于用户可以选择远程文件。这就是为什么返回类型和dir
的类型是QUrl。supportedSchemes
参数允许限制用户可以选择URL的类型。这是应用程序声明其支持的文件内容保存协议的一种方式。空列表表示不应用任何限制(默认)。对本地文件(“file”方案)的支持是隐式的,并且始终启用;不需要将其包含在限制中。在可能的情况下,此静态函数使用本机文件对话框,而不是
QFileDialog
。在不支持选择远程文件的平台上,Qt 将只允许选择本地文件。- history()¶
- Return type:
字符串列表
返回文件对话框的浏览历史记录作为路径列表。
另请参阅
- iconProvider()¶
- Return type:
返回文件对话框使用的图标提供者。
另请参阅
- itemDelegate()¶
- Return type:
返回用于在文件对话框中渲染视图项的项目委托。
另请参阅
- labelText(label)¶
- Parameters:
标签 –
DialogLabel
- Return type:
字符串
返回在指定
label
中显示的文件对话框文本。另请参阅
- mimeTypeFilters()¶
- Return type:
字符串列表
返回在此文件对话框上操作的MIME类型过滤器。
另请参阅
- nameFilters()¶
- Return type:
字符串列表
返回在此文件对话框中生效的文件类型过滤器。
另请参阅
此函数显示对话框,并将由
receiver
和member
指定的槽连接到通知选择更改的信号。如果fileMode
是ExistingFiles
,则这是filesSelected()
信号,否则是fileSelected()
信号。当对话框关闭时,信号与槽断开连接。
- proxyModel()¶
- Return type:
返回文件对话框使用的代理模型。默认情况下没有设置代理。
另请参阅
- restoreState(state)¶
- Parameters:
状态 –
QByteArray
- Return type:
布尔
将对话框的布局、历史记录和当前目录恢复到指定的
state
。通常这与QSettings一起使用,以从过去的会话中恢复大小。
如果有错误,返回
false
- static saveFileContent(fileContent, fileNameHint[, parent=None])¶
- Parameters:
fileContent –
QByteArray
fileNameHint – str
parent –
QWidget
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
这是一个方便的静态函数,它将
fileContent
保存到用户选择的文件名和位置的文件中。可以提供fileNameHint
来建议用户一个文件名。使用此函数将内容保存到Qt for WebAssembly的本地文件中,如果网络沙盒限制了文件访问。其实现允许在浏览器中显示一个本地文件对话框,用户可以根据
fileNameHint
参数指定输出文件。parent
在 Qt for WebAssembly 上被忽略。在其他平台上传递parent
,以使弹出窗口成为另一个小部件的子部件。如果平台不支持原生文件对话框,该函数将回退到QFileDialog
。该函数是异步的,会立即返回。
QByteArray imageData # obtained from e.g. QImage.save() QFileDialog.saveFileContent(imageData, "myimage.png") # with filename hint # OR QFileDialog.saveFileContent(imageData) # no filename hint
- saveState()¶
- Return type:
保存对话框的布局、历史记录和当前目录的状态。
通常这与QSettings一起使用,以记住未来会话的大小。版本号作为数据的一部分存储。
- selectFile(filename)¶
- Parameters:
文件名 – str
在文件对话框中选择给定的
filename
。另请参阅
- selectMimeTypeFilter(filter)¶
- Parameters:
filter – 字符串
设置当前的MIME类型
filter
。- selectNameFilter(filter)¶
- Parameters:
filter – 字符串
设置当前文件类型
filter
。可以通过用分号或空格分隔的方式在filter
中传递多个过滤器。在文件对话框中选择给定的
url
。- selectedFiles()¶
- Return type:
字符串列表
返回一个包含对话框中选定文件的绝对路径的字符串列表。如果未选择任何文件,或者模式不是
ExistingFiles
或ExistingFile
,则selectedFiles()包含视口中的当前路径。- selectedMimeTypeFilter()¶
- Return type:
字符串
返回用户在文件对话框中选择文件的MIME类型。
- selectedNameFilter()¶
- Return type:
字符串
返回用户在文件对话框中选择的过滤器。
另请参阅
返回包含对话框中选定文件的URL列表。如果未选择任何文件,或者模式不是
ExistingFiles
或ExistingFile
,则selectedUrls()包含视口中的当前路径。- setAcceptMode(mode)¶
- Parameters:
mode –
AcceptMode
另请参阅
属性
acceptModeᅟ
的设置器。- setDefaultSuffix(suffix)¶
- Parameters:
suffix – str
另请参阅
属性
defaultSuffixᅟ
的设置器。这是一个重载函数。
- setDirectory(directory)
- Parameters:
目录 – str
设置文件对话框的当前
目录
。注意
在iOS上,如果你将
directory
设置为QStandardPaths::standardLocations(QStandardPaths::PicturesLocation).last(),则会使用原生图像选择器对话框来访问用户的相册。返回的文件名可以使用QFile和相关API加载。要启用此功能,项目文件中分配给QMAKE_INFO_PLIST的Info.plist必须包含键NSPhotoLibraryUsageDescription
。有关此键的更多信息,请参阅Apple的Info.plist文档。此功能在Qt 5.5中添加。另请参阅
设置文件对话框的当前
目录
URL。注意
非原生的
QFileDialog
仅支持本地文件。注意
在Windows上,可以传递表示虚拟文件夹之一的URL,例如“计算机”或“网络”。这是通过使用
clsid
方案传递QUrl来完成的,后面跟着去掉大括号的CLSID值。例如,URLclsid:374DE290-123F-4565-9164-39C4925E467B
表示下载位置。有关可能值的完整列表,请参阅KNOWNFOLDERID的MSDN文档。此功能在Qt 5.5中添加。另请参阅
属性
fileModeᅟ
的设置器。将模型使用的过滤器设置为
filters
。该过滤器用于指定应显示的文件类型。另请参阅
- setHistory(paths)¶
- Parameters:
paths – 字符串列表
设置文件对话框的浏览历史以包含给定的
paths
。另请参阅
- setIconProvider(provider)¶
- Parameters:
provider –
QAbstractFileIconProvider
将文件对话框使用的图标提供者设置为指定的
provider
。另请参阅
- setItemDelegate(delegate)¶
- Parameters:
delegate –
QAbstractItemDelegate
设置用于在文件对话框中渲染视图项的项目委托为给定的
delegate
。任何现有的委托将被移除,但不会被删除。
QFileDialog
不拥有delegate
的所有权。警告
您不应在视图之间共享同一个委托实例。这样做可能会导致不正确或不符合直觉的编辑行为,因为连接到给定委托的每个视图可能会接收到
closeEditor()
信号,并尝试访问、修改或关闭已经关闭的编辑器。请注意,使用的模型是QFileSystemModel。它具有自定义的项目数据角色,这些角色由Roles枚举描述。如果您只想要自定义图标,可以使用
QFileIconProvider
。- setLabelText(label, text)¶
- Parameters:
label –
DialogLabel
文本 – str
设置文件对话框中指定
label
中显示的text
。另请参阅
- setMimeTypeFilters(filters)¶
- Parameters:
filters – 字符串列表
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
设置文件对话框中使用的
filters
,从MIME类型列表中。方便的方法用于
setNameFilters()
。使用QMimeType从每种MIME类型中定义的glob模式和描述创建名称过滤器。使用 application/octet-stream 作为“所有文件 (*)”过滤器的 MIME 类型,因为这是所有文件的基本 MIME 类型。
调用 setMimeTypeFilters 会覆盖任何先前设置的名称过滤器,并更改
nameFilters()
的返回值。def mimeTypeFilters({"image/jpeg",*.jpe): "image/png", // will show "PNG image (*.png)" "application/octet-stream" // will show "All files (*)" }) dialog = QFileDialog(self) dialog.setMimeTypeFilters(mimeTypeFilters) dialog.exec()
另请参阅
- setNameFilter(filter)¶
- Parameters:
filter – 字符串
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
将文件对话框中使用的过滤器设置为给定的
filter
。如果
filter
包含一对括号,括号内包含一个或多个文件名通配符模式,用空格分隔,那么只有括号内的文本被用作过滤器。这意味着这些调用都是等价的:dialog.setNameFilter("All C++ files (*.cpp *.cc *.C *.cxx *.c++)") dialog.setNameFilter("*.cpp *.cc *.C *.cxx *.c++")
- setNameFilters(filters)¶
- Parameters:
filters – 字符串列表
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
设置文件对话框中使用的
filters
。请注意,过滤器 *.* 并不具有可移植性,因为历史上认为文件扩展名决定文件类型的假设在每个操作系统上并不一致。有可能存在文件名中没有点的文件(例如,
Makefile
)。在原生 Windows 文件对话框中,*.* 可以匹配这些文件,而在其他类型的文件对话框中可能无法匹配。因此,如果您打算选择任何文件,最好使用 *。QStringList filters({"Image files (*.png *.xpm *.jpg)", "Text files (*.txt)", "Any files (*)" }) dialog = QFileDialog(self) dialog.setNameFilters(filters) dialog.exec()
setMimeTypeFilters()
的优势在于为每种文件类型提供了所有可能的名称过滤器。例如,JPEG 图像有三种可能的扩展名;如果你的应用程序可以打开此类文件,选择image/jpeg
作为 MIME 类型过滤器可以让你打开所有这些文件。另请参阅
如果
on
为真,则启用给定的option
;否则,清除给定的option
。选项(特别是
DontUseNativeDialog
选项)应在更改对话框属性或显示对话框之前设置。在对话框可见时设置选项不保证会立即对对话框产生影响(取决于选项和平台)。
在更改其他属性后设置选项可能会导致这些值无效。
另请参阅
- setProxyModel(model)¶
- Parameters:
模型 –
QAbstractProxyModel
将视图的模型设置为给定的
proxyModel
。如果您想修改底层模型,这非常有用;例如,添加列、过滤数据或添加驱动器。任何现有的代理模型都会被移除,但不会被删除。文件对话框将接管
proxyModel
的所有权。另请参阅
- setSidebarUrls(urls)¶
- Parameters:
urls – QUrl 的列表
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
设置位于侧边栏中的
urls
。例如:
urls = QList() urls << QUrl.fromLocalFile("/Users/foo/Code/qt5") << QUrl.fromLocalFile(QStandardPaths.standardLocations(QStandardPaths.MusicLocation).first()) dialog = QFileDialog() dialog.setSidebarUrls(urls) dialog.setFileMode(QFileDialog.AnyFile) if dialog.exec(): # ...
然后文件对话框看起来像这样:
另请参阅
- setSupportedSchemes(schemes)¶
- Parameters:
schemes – 字符串列表
另请参阅
属性
supportedSchemesᅟ
的设置器。属性
viewModeᅟ
的设置器。返回当前在侧边栏中的URL列表
另请参阅
- supportedSchemes()¶
- Return type:
字符串列表
属性
supportedSchemesᅟ
的获取器。如果给定的
option
已启用,则返回true
;否则,返回false。另请参阅
当选择发生变化并且对话框被接受时,会发出此信号,并带有(可能为空的)选定的
url
。另请参阅
- urlsSelected(urls)¶
- Parameters:
urls – QUrl 的列表
当选择发生变化并且对话框被接受时,会发出此信号,并带有(可能为空的)所选
urls
列表。另请参阅
- viewMode()¶
- Return type:
另请参阅
属性
viewModeᅟ
的获取器。