- class QFileDialog#
QFileDialog类提供了一个对话框,允许用户选择文件或目录。 更多信息…
概述#
属性#
acceptModeᅟ
- 对话框的接受模式defaultSuffixᅟ
- 如果没有指定其他后缀,则添加到文件名中的后缀fileModeᅟ
- 对话框的文件模式optionsᅟ
- 影响对话框外观和行为的各种选项supportedSchemesᅟ
- 文件对话框应允许导航到的URL方案viewModeᅟ
- 文件和目录在对话框中显示的方式
方法#
定义
__init__()
定义
acceptMode()
定义
directory()
定义
fileMode()
定义
filter()
定义
history()
定义
labelText()
定义
open()
定义
options()
定义
proxyModel()
定义
saveState()
定义
selectFile()
定义
selectUrl()
定义
setFilter()
定义
setHistory()
定义
setOption()
定义
setOptions()
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)”中给出的模式匹配的文件。文件对话框的父对象设置为 当前对象,窗口标题设置为“打开图像”。如果您想使用多个过滤器,每个过滤器之间用 两个 分号分隔。例如
"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()
功能选择当前目录中的每个文件。Standard Dialogs示例展示了如何使用
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
。另请参阅
- property defaultSuffixᅟ: str#
此属性存储如果没有指定其他后缀,将添加到文件名的后缀。
如果文件名尚未有后缀,此属性指定了一个将添加到文件名中的字符串。后缀通常用于指示文件类型(例如,“txt”表示文本文件)。
如果第一个字符是点(‘.'),则将其删除。
- property fileModeᅟ: QFileDialog.FileMode#
此属性存储对话框的文件模式。
文件模式定义了用户在对话框中预期选择的项的数量和类型。
默认情况下,此属性设置为
AnyFile
.此函数设置
FileName
和Accept
DialogLabel
的标签。在调用 setFileMode() 之后,可以设置自定义文本。另请参阅
- 访问函数
- 属性optionsᅟ: QAbstractFileIconProvider.Option 的组合
此属性包含影响对话框外观和感觉的各种选项。
默认情况下,所有选项都未启用。
在更改对话框属性或显示对话框之前,应该设置选项(尤其是
DontUseNativeDialog
选项)。在对话框可见时设置选项可能不会立即影响对话框(取决于选项和平台)。
在其他属性更改后设置选项可能会导致这些值没有任何效果。
另请参阅
- 访问函数
- 属性supportedSchemesᅟ: 字符串列表
此属性包含文件对话框应允许导航到的 URL 方案。
设置此属性可以限制用户可以选择的 URL 类型。这是应用程序声明其支持的协议以获取文件内容的方式。空列表表示不应用任何限制(默认)。对本地文件(“file”方案)的支持是隐式的且始终启用;无需将其包含在限制中。
- 属性viewModeᅟ: QFileDialog.ViewMode#
此属性包含在对话框中显示文件和目录的方式。
默认情况下,使用
Detail
模式显示文件和目录的信息。另请参阅
- 访问函数
- __init__([parent=None[, caption=""[, directory=""[, filter=""]]]])#
- 参数:
parent –
QWidget
caption – 字符串
directory – 字符串
filter – 字符串
构建一个具有给定
parent
和caption
的文件对话框,默认显示指定directory
的内容。在对话框中显示目录内容之前,会使用由filter
指定的分号分隔的过滤器列表进行过滤。- __init__(parent, f)
- 参数:
parent –
QWidget
f –
WindowType
的组合
使用给定的
parent
和 `flags
` 的窗口小部件构建文件对话框。- acceptMode()#
- 返回类型:
另请参阅
属性
acceptModeᅟ
的获取器。- currentChanged(path)#
- 参数:
path – 字符串
当对于本地操作当前文件改变时,此信号会发出,其中新文件名作为
path
参数。当当前文件改变时,此信号会发出,其中新文件URL作为
url
参数。- defaultSuffix()#
- 返回类型:
字符串
另请参阅
属性
defaultSuffixᅟ
的获取器。返回对话框当前显示的目录。
另请参阅
- directoryEntered(directory)#
- 参数:
directory – 字符串
此信号在用户进入一个
目录
时为本地操作发出。返回当前在对话框中显示的目录的url。
另请参阅
当用户输入一个
目录
时发出此信号。- fileMode()#
- 返回类型:
另请参阅
属性
fileMode
的获取器。- fileSelected(file)#
- 参数:
file – str
当对本地操作进行选择更改并且对话框被接受时,此信号携带(可能为空)的选定
文件
被发出。另请参阅
- filesSelected(files)#
- 参数:
files – list of strings
当对本地操作进行选择更改并且对话框被接受时,此信号携带(可能为空)的选定
文件
列表被发出。另请参阅
返回在显示文件时使用的过滤器。
另请参阅
- filterSelected(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
枚举。为了确保是 native 文件对话框,必须设置ShowDirsOnly
。在 Windows 和 macOS 上,此静态函数使用 native 文件对话框,而不是
QFileDialog
。但是,native Windows 文件对话框不支持在目录选择器中显示文件。你需要传递DontUseNativeDialog
选项,或者将全局应用属性 \l{Qt::}{AA_DontUseNativeDialogs} 设置为使用QFileDialog
来显示文件。请注意,macOS 的 native 文件对话框不会显示标题栏。
在 Unix/X11 上,文件对话框的正常行为是解析并跟随符号链接。例如,如果
/usr/tmp
是指向/var/tmp
的符号链接,那么在输入/usr/tmp
后,文件对话框会切换到/var/tmp
。如果options
包含DontResolveSymlinks
,则文件对话框会将符号链接视为常规目录。在 Windows 上,对话框启动一个阻止模态事件循环,不派遣任何 QTimers,且如果
parent
不是None
,则将对话框位置设置在父窗口标题栏下方。警告
在对话框执行过程中,不要删除
parent
。如果你想这样做,你必须使用其中一个QFileDialog
构造函数自己创建对话框。- static getExistingDirectoryUrl([parent=None[, caption=""[, dir=QUrl()[, options=QFileDialog.Option.ShowDirsOnly[, supportedSchemes=list()]]]]])#
这是一个便于使用的静态函数,用于返回用户选择的现有目录。如果用户按下取消(Cancel),则返回一个空的URL。
此函数的使用方式与
getExistingDirectory()
类似。特别地,parent
、caption
、dir
和options
的使用方式完全相同。与
getExistingDirectory()
相比,主要区别在于用户可以选择远程目录的能力。这就是为什么返回类型和dir
的类型是QUrl的原因。supportedSchemes
参数允许限制用户可以选择的URL的类型。这是应用程序声明它支持抓取文件内容协议的一种方式。空列表表示应用没有任何限制(默认)。对本地文件(“file”方案)的支持是隐含的,始终启用,因此不必将其包括在限制中。尽可能使用本机文件对话框而不是
QFileDialog
时,此静态函数使用。在不支持选择远程文件的平台上,Qt只允许选择本地文件。- 静态 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
,则文件对话框会将符号链接视为常规目录。警告
在对话框执行过程中,不要删除
parent
。如果你想这样做,你必须使用其中一个QFileDialog
构造函数自己创建对话框。警告
本节包含自动将 C++ 代码片段翻译成 Python 的片段,可能存在错误。
这是一个方便的静态函数,返回用户选择的零个或多个现有文件。
files = QFileDialog.getOpenFileNames(() self, "Select one or more files to open", "/home", "Images (*.png *.xpm *.jpg)")
此函数创建一个带有指定
parent
小部件的模态文件对话框。如果parent
不是None
,则该对话框将在父小部件上居中显示。文件对话框的工作目录设置为
dir
。"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
。- 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 >和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
,则文件对话框会将符号链接视为常规目录。警告
在对话框执行过程中,不要删除
parent
。如果你想这样做,你必须使用其中一个QFileDialog
构造函数自己创建对话框。- 静态 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()#
- 返回类型:
字符串列表
返回文件对话框的浏览历史记录,以路径列表的形式。
另请参阅
- iconProvider()#
返回文件对话框使用的图标提供者。
另请参阅
- itemDelegate()#
- 返回类型:
返回用于在文件对话框视图中的项目进行渲染的委托。
另请参阅
- labelText(label)#
- 参数:
label –
DialogLabel
- 返回类型:
字符串
返回在文件对话框中指定
label
显示的文本。另请参阅
- mimeTypeFilters()#
- 返回类型:
字符串列表
返回在该文件对话框上运行的 MIME 类型过滤器。
另请参阅
- nameFilters()#
- 返回类型:
字符串列表
返回在该文件对话框上运行的文件类型过滤器。
另请参阅
此函数将弹出一个对话框,并将由
receiver
和member
指定的槽连接到通知选择更改的信号。如果fileMode
为ExistingFiles
,则这是filesSelected()
信号,否则是fileSelected()
信号。当对话框关闭时,信号将从槽断开连接。
- proxyModel()#
- 返回类型:
返回文件对话框所使用的代理模型。默认未设置代理。
另请参阅
- restoreState(state)#
- 参数:
state –
QByteArray
- 返回类型:
bool
将对话框的布局、历史记录和当前目录恢复到指定的
state
。通常与 QSettings 一起使用来恢复会话保存的大小。
如果有错误返回false
- staticsaveFileContent(fileContent, fileNameHint[, parent=None])#
- 参数:
fileContent –
QByteArray
fileNameHint – str
parent –
QWidget
警告
本节包含自动将 C++ 代码片段翻译成 Python 的片段,可能存在错误。
这是一个方便的静态函数,它将
fileContent
保存到文件,使用用户选择文件名和位置。可以为用户提示文件名。使用此功能将内容保存到Qt for WebAssembly上的本地文件,如果Web沙盒限制了文件访问。其实现在浏览器中显示原生文件对话框,用户根据
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()#
- 返回类型:
保存对话框布局、历史记录和当前目录的状态。
通常与QSettings一起使用,以便记住未来会话的大小。数据部分存储了一个版本号。
- selectFile(filename)#
- 参数:
filename – str
在文件对话框中选择指定的
filename
。另请参阅
- selectMimeTypeFilter(filter)#
- 参数:
filter – 字符串
设置当前的MIME类型过滤器。
- selectNameFilter(filter)#
- 参数:
filter – 字符串
设置当前的文件类型过滤器。可以在
filter
中通过分号或空格分隔多个过滤器。在文件对话框中选择指定的
url
。- selectedFiles()#
- 返回类型:
字符串列表
返回一个包含对话框中选定文件的绝对路径的字符串列表。如果没有选择文件,或者模式不是
ExistingFiles
或ExistingFile
,则selectedFiles()包含视口中的当前路径。- selectedMimeTypeFilter()#
- 返回类型:
字符串
返回用户在文件对话框中选择的文件的 MIME 类型。
- selectedNameFilter()#
- 返回类型:
字符串
返回用户在文件对话框中选择的过滤器。
另请参阅
返回了一个包含文件对话框中选择的文件 URL 列表。如果没有选择文件,或者模式不是
ExistingFiles
或ExistingFile
,则 selectedUrls() 包含视口中当前路径。- setAcceptMode(mode)#
- 参数:
mode –
AcceptMode
另请参阅
属性
acceptMode
的设置器。- setDefaultSuffix(suffix)#
- 参数:
suffix – str
另请参阅
属性
defaultSuffix
的设置器。这是一个重载函数。
- setDirectory(directory)
- 参数:
directory – 字符串
设置文件对话框的当前目录。
注意
在iOS上,如果将
directory
设置为QStandardPaths::standardLocations(QStandardPaths::PicturesLocation).last(),则使用原生图像选择器对话框来访问用户的相册。返回的文件名可以使用QFile和相关的API进行加载。要启用此功能,项目文件中分配给QMAKE_INFO_PLIST的Info.plist必须包含键NSPhotoLibraryUsageDescription
。有关此键的更多信息,请参阅苹果的Info.plist文档。此功能是在Qt 5.5中添加的。另请参阅
设置文件对话框的当前
directory
URL。注意
非原生
QFileDialog
仅支持本地文件。注意
在Windows上,可以将表示一个虚拟文件夹(例如“计算机”或“网络”)的URL传递过去。这是通过传递一个使用
clsid
方案的QUrl来完成的,后面跟一个去除大括号的CLSID值。例如,URLclsid:374DE290-123F-4565-9164-39C4925E467B
表示下载位置。要查看可能的完整值列表,请参阅MSDN上的KNOWNFOLDERID 文档。此功能是在Qt 5.5中添加的。另请参阅
文件模式属性
fileMode
的设置器。设置用于模型的过滤器为
filters
。该过滤器用于指定应显示哪种类型的文件。另请参阅
- setHistory(paths)#
- 参数:
paths – 字符串列表
设置文件对话框的浏览历史记录包含给定的
paths
。另请参阅
- setIconProvider(provider)#
- 参数:
provider –
QAbstractFileIconProvider
将文件对话框所使用的图标提供者设置为指定的
provider
。另请参阅
- setItemDelegate(delegate)#
- 参数:
delegate –
QAbstractItemDelegate
将用于在文件对话框中渲染项目的项目代理设置为指定的
delegate
。任何现有的代理将被移除,但不会被删除。
QFileDialog
不会取得delegate
的所有权。警告
不应在多个视图中共享相同的代理实例。这样做可能会由于每个与给定代理关联的视图可能会接收到
closeEditor()
信号并尝试访问、修改或关闭已关闭的编辑器而导致不正确或不直观的编辑行为。请注意,使用的模型是 QFileSystemModel。它具有自定义项目数据角色,这由 Roles 枚举描述。如果您只想使用自定义图标,可以使用
QFileIconProvider
。- setLabelText(label, text)#
- 参数:
label –
DialogLabel
text – str
在文件对话框中将指定
label
中显示的text
设置。另请参阅
- setMimeTypeFilters(filters)#
- 参数:
filters – 字符串列表
警告
本节包含自动将 C++ 代码片段翻译成 Python 的片段,可能存在错误。
设置文件对话框中使用的过滤器,来自 MIME 类型列表。
setNameFilters()
的便利方法。使用 QMimeType 从每个 MIME 类型的 glob 模式和描述中创建名称过滤器。对于“所有文件 (*)”过滤器,请使用 application/octet-stream,因为这是所有文件的基 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)#
- 参数:
filter – 字符串
警告
本节包含自动将 C++ 代码片段翻译成 Python 的片段,可能存在错误。
设置文件对话框中使用的过滤器为给定的
filter
。如果
filter
包含由空格分隔的一个或多个文件名通配符模式的一对括号,则仅使用括号内的文本作为过滤器。这意味着以下调用都是等效的dialog.setNameFilter("All C++ files (*.cpp *.cc *.C *.cxx *.c++)") dialog.setNameFilter("*.cpp *.cc *.C *.cxx *.c++")
注意
在使用 Android 的原生文件对话框时,使用与给定名称过滤器匹配的 MIME 类型,因为只支持 MIME 类型。
- setNameFilters(filters)#
- 参数:
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
为 true,则将给定的option
设置为启用状态;否则,清除给定的option
。在更改对话框属性或显示对话框之前,应该设置选项(尤其是
DontUseNativeDialog
选项)。在对话框可见时设置选项可能不会立即影响对话框(取决于选项和平台)。
在其他属性更改后设置选项可能会导致这些值没有任何效果。
另请参阅
- setProxyModel(model)#
- 参数:
model –
QAbstractProxyModel
将视图的模型设置为提供的
proxyModel
。如果您想修改底层模型,这很有用;例如,添加列、过滤数据或添加驱动器。将移除任何现有的代理模型,但不会删除它。文件对话框将拥有对
proxyModel
的所有权。另请参阅
- setSidebarUrls(urls)#
- 参数:
urls – .list of 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)#
- 参数:
schemes – list of strings
另请参阅
supportedSchemes
属性的设置器。viewMode
属性的设置器。返回目前位于侧边栏的 url 列表
另请参阅
- supportedSchemes()#
- 返回类型:
字符串列表
supportedSchemes
属性的获取器。如果给定的
option
被启用,则返回true
;否则,返回false
。另请参阅
当选择改变并且对话框被接受时,会发出此信号,带有(可能为空)的已选择
url
。- urlsSelected(urls)#
- 参数:
urls – .list of QUrl
当选择更改且对话框被接受时,此信号会发出(可能为空的)选择
urls
列表。- viewMode()#
- 返回类型:
另请参阅
属性
viewModeᅟ
的获取器。