class QFileDialog#

QFileDialog类提供了一个对话框,允许用户选择文件或目录。 更多信息

Inheritance diagram of PySide6.QtWidgets.QFileDialog

概述#

属性#

方法#

信号#

静态功能#

注意

本文档可能包含自动将 C++ 代码片段翻译成 Python 的片段。我们始终欢迎对片段翻译的贡献。如果您发现翻译有问题,也可以通过在 https:/bugreports.qt.io/projects/PYSIDE 上创建工单的方式来通知我们

详细描述#

警告

本节包含自动将 C++ 代码片段翻译成 Python 的片段,可能存在错误。

QFileDialog 类允许用户遍历文件系统以选择一个或多个文件或目录。

../../_images/qtquickdialogs-filedialog-gtk.png

创建 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)"。这意味着只有扩展名为pngxpmjpg的文件会显示在QFileDialog中。您可以通过使用setNameFilters()来应用多个过滤器。使用selectNameFilter()来选择其中一个过滤器作为文件对话框的默认过滤器。

文件对话框有两种查看模式:ListDetailList将以文件和目录名称列表的形式显示当前目录的内容。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

仅显示目录中每个项的图标和名称。

另请参阅

setViewMode()

class FileMode#

此枚举用于指示用户可以在文件对话框中选择什么;即,如果用户点击“确定”,对话框返回的内容。

常量

描述

QFileDialog.AnyFile

文件名称,无论它是否存在。

QFileDialog.ExistingFile

单个现有文件的名称。

QFileDialog.Directory

目录名称。文件和目录都显示。但是,原生Windows文件对话框不支持在目录选择器中显示文件。

QFileDialog.ExistingFiles

零个或多个现有文件的名称。

另请参阅

setFileMode()

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

如果已选择现有文件,则不要请求确认。默认情况下会请求确认。此选项仅在acceptModeAcceptSave时有效)。此外,在macOS上,对于原生文件对话框也不使用。

QFileDialog.DontUseNativeDialog

不使用平台原生文件对话框,而是使用Qt提供的基于小部件的文件对话框。默认情况下,会显示原生文件对话框,除非你使用包含Q_OBJECT宏的QFileDialog子类,设置全局AA_DontUseNativeDialogs应用程序属性,或者平台不具有您所需的类型原生前对话框。为了使此选项有效,您必须在更改对话框的其他属性或显示对话框之前设置它。

QFileDialog.ReadOnly

表示模型为只读。

QFileDialog.HideNameFilterDetails

表示是否隐藏文件名过滤器详细信息。

QFileDialog.DontUseCustomDirectoryIcons

始终使用默认目录图标。某些平台允许用户设置不同的图标,但自定义图标查找可能会造成网络或移动驱动器上的性能问题。设置此值将在iconProvider()中启用DontUseCustomDirectoryIcons选项。此枚举值在Qt 5.2版本中添加。

另请参阅

options testOption

注意

当使用`from __feature__ import true_property`时,可以直接使用属性或通过访问函数使用。

property acceptModeᅟ: QFileDialog.AcceptMode#

此属性存储对话框的接受模式。

动作模式定义了对话框是用于打开还是保存文件。

默认情况下,此属性设置为AcceptOpen

另请参阅

AcceptMode

访问函数
property defaultSuffixᅟ: str#

此属性存储如果没有指定其他后缀,将添加到文件名的后缀。

如果文件名尚未有后缀,此属性指定了一个将添加到文件名中的字符串。后缀通常用于指示文件类型(例如,“txt”表示文本文件)。

如果第一个字符是点(‘.'),则将其删除。

访问函数
property fileModeᅟ: QFileDialog.FileMode#

此属性存储对话框的文件模式。

文件模式定义了用户在对话框中预期选择的项的数量和类型。

默认情况下,此属性设置为 AnyFile .

此函数设置 FileNameAccept DialogLabel 的标签。在调用 setFileMode() 之后,可以设置自定义文本。

另请参阅

FileMode

访问函数
属性optionsᅟ: QAbstractFileIconProvider.Option 的组合

此属性包含影响对话框外观和感觉的各种选项。

默认情况下,所有选项都未启用。

在更改对话框属性或显示对话框之前,应该设置选项(尤其是 DontUseNativeDialog 选项)。

在对话框可见时设置选项可能不会立即影响对话框(取决于选项和平台)。

在其他属性更改后设置选项可能会导致这些值没有任何效果。

另请参阅

setOption() testOption()

访问函数
属性supportedSchemesᅟ: 字符串列表

此属性包含文件对话框应允许导航到的 URL 方案。

设置此属性可以限制用户可以选择的 URL 类型。这是应用程序声明其支持的协议以获取文件内容的方式。空列表表示不应用任何限制(默认)。对本地文件(“file”方案)的支持是隐式的且始终启用;无需将其包含在限制中。

访问函数
属性viewModeᅟ: QFileDialog.ViewMode#

此属性包含在对话框中显示文件和目录的方式。

默认情况下,使用 Detail 模式显示文件和目录的信息。

另请参阅

ViewMode

访问函数
__init__([parent=None[, caption=""[, directory=""[, filter=""]]]])#
参数:
  • parentQWidget

  • caption – 字符串

  • directory – 字符串

  • filter – 字符串

构建一个具有给定 parentcaption 的文件对话框,默认显示指定 directory 的内容。在对话框中显示目录内容之前,会使用由 filter 指定的分号分隔的过滤器列表进行过滤。

__init__(parent, f)
参数:

使用给定的 parent 和 `flags` 的窗口小部件构建文件对话框。

acceptMode()#
返回类型:

AcceptMode

另请参阅

setAcceptMode()

属性 acceptModeᅟ 的获取器。

currentChanged(path)#
参数:

path – 字符串

当对于本地操作当前文件改变时,此信号会发出,其中新文件名作为 path 参数。

另请参阅

currentUrlChanged(url)#
参数:

urlQUrl

当当前文件改变时,此信号会发出,其中新文件URL作为 url 参数。

另请参阅

defaultSuffix()#
返回类型:

字符串

另请参阅

setDefaultSuffix()

属性 defaultSuffixᅟ 的获取器。

directory()#
返回类型:

QDir

返回对话框当前显示的目录。

另请参阅

setDirectory()

directoryEntered(directory)#
参数:

directory – 字符串

此信号在用户进入一个目录时为本地操作发出。

directoryUrl()#
返回类型:

QUrl

返回当前在对话框中显示的目录的url。

另请参阅

setDirectoryUrl()

directoryUrlEntered(directory)#
参数:

directoryQUrl

当用户输入一个目录时发出此信号。

fileMode()#
返回类型:

FileMode

另请参阅

setFileMode()

属性fileMode的获取器。

fileSelected(file)#
参数:

file – str

当对本地操作进行选择更改并且对话框被接受时,此信号携带(可能为空)的选定文件被发出。

另请参阅

currentChanged() Accepted

filesSelected(files)#
参数:

files – list of strings

当对本地操作进行选择更改并且对话框被接受时,此信号携带(可能为空)的选定文件列表被发出。

另请参阅

currentChanged() Accepted

filter()#
返回类型:

Filter的组合

返回在显示文件时使用的过滤器。

另请参阅

setFilter()

filterSelected(filter)#
参数:

filter – 字符串

当用户选择一个过滤器时发出此信号。

static getExistingDirectory([parent=None[, caption=""[, dir=""[, options=QFileDialog.Option.ShowDirsOnly]]]])#
参数:
  • parentQWidget

  • caption – 字符串

  • dir – str

  • optionsOption的组合

返回类型:

字符串

警告

本节包含自动将 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()]]]]])#
参数:
  • parentQWidget

  • caption – 字符串

  • dirQUrl

  • optionsOption的组合

  • supportedSchemes – 字符串列表

返回类型:

QUrl

这是一个便于使用的静态函数,用于返回用户选择的现有目录。如果用户按下取消(Cancel),则返回一个空的URL。

此函数的使用方式与getExistingDirectory()类似。特别地,parentcaptiondiroptions的使用方式完全相同。

getExistingDirectory()相比,主要区别在于用户可以选择远程目录的能力。这就是为什么返回类型和dir的类型是QUrl的原因。

supportedSchemes参数允许限制用户可以选择的URL的类型。这是应用程序声明它支持抓取文件内容协议的一种方式。空列表表示应用没有任何限制(默认)。对本地文件(“file”方案)的支持是隐含的,始终启用,因此不必将其包括在限制中。

尽可能使用本机文件对话框而不是QFileDialog时,此静态函数使用。在不支持选择远程文件的平台上,Qt只允许选择本地文件。

静态 getOpenFileName([parent=None[, caption=""[, dir=""[, filter=""[, selectedFilter=""[, options=QFileDialog.Options()]]]]])#
参数:
  • parentQWidget

  • caption – 字符串

  • dir – str

  • filter – 字符串

  • selectedFilter – 字符串

  • optionsOption的组合

返回类型:

(文件名, selectedFilter)

警告

本节包含自动将 C++ 代码片段翻译成 Python 的片段,可能存在错误。

这是一个方便的静态函数,返回用户选择的现有文件。如果用户按下取消,它返回一个空字符串。

fileName = QFileDialog.getOpenFileName(self, tr("Open File"),()
                                                "/home",
                                                tr("Images (*.png *.xpm *.jpg)"))

该函数创建一个具有给定 parent 小部件的模态文件对话框。如果 parent 不是 None,则对话框将在父小部件上方中央显示。

文件对话框的工作目录设置为 dir。如果 dir 包含文件名,则选择该文件。只显示与给定 filter 匹配的文件。选择的过滤器设置为 selectedFilter。参数 dirselectedFilterfilter 可以是空字符串。如果您想要多个过滤器,使用“;”分开它们,例如

"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 构造函数自己创建对话框。

参数:
  • parentQWidget

  • caption – 字符串

  • dir – str

  • filter – 字符串

  • selectedFilter – 字符串

  • optionsOption的组合

返回类型:

(文件名列表, 选中过滤器)

警告

本节包含自动将 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

警告

在对话框执行过程中,不要删除 parent。如果你想这样做,你必须使用其中一个 QFileDialog 构造函数自己创建对话框。

另请参阅

getOpenFileName()

static getOpenFileUrl([parent=None[, caption=""[, dir=QUrl()[, filter=""[, selectedFilter=""[, options=QFileDialog.Options()[, supportedSchemes=list()]]]]]])#
参数:
  • parentQWidget

  • caption – 字符串

  • dirQUrl

  • filter – 字符串

  • selectedFilter – 字符串

  • optionsOption的组合

  • supportedSchemes – 字符串列表

返回类型:

(文件名, selectedFilter)

这是一个方便的静态函数,返回用户选择的现有文件。如果用户按下取消,则返回一个空的URL。

此函数的使用方式与getOpenFileName()类似。特别是parentcaptiondirfilterselectedFilteroptions完全以同样的方式使用。

getOpenFileName()的主要区别在于为用户选择远程文件提供的功能。这就是为什么返回类型和dir的类型是QUrl的原因。

supportedSchemes参数允许限制用户可以选择的URL类型。这是应用声明它将支持的文件内容获取协议的一种方式。空列表表示不应用限制(默认值)。对本地文件(“file”方案)的支持是隐含的,始终启用;不需要在限制中包含它。

在可能的情况下,此静态函数使用原生文件对话框而不是QFileDialog。在不支持选择远程文件的平台,Qt将允许选择只包含本地文件。

static getOpenFileUrls([parent=None[, caption=""[, dir=QUrl()[, filter=""[, selectedFilter=""[, options=QFileDialog.Options()[, supportedSchemes=list()]]]]]])#
参数:
  • parentQWidget

  • caption – 字符串

  • dirQUrl

  • filter – 字符串

  • selectedFilter – 字符串

  • optionsOption的组合

  • supportedSchemes – 字符串列表

返回类型:

(文件名, selectedFilter)

这是一个方便的静态函数,用于返回用户选中的一或多个现有文件。如果用户点击“取消”,则返回一个空列表。

该函数的用法与getOpenFileNames()类似。特别是parentcaptiondirfilterselectedFilteroptions都按完全相同的方式使用。

getOpenFileNames()相比,主要区别在于提供给用户选择远程文件的能力。这就是为什么返回类型和dir的类型分别是QList< QUrl >和QUrl。

supportedSchemes参数允许限制用户可以选择的URL类型。这是应用程序声明它支持的协议,以获取文件内容的一种方式。空列表表示不应用任何限制(默认值)。对本地文件(“file”方案)的支持是隐含的,始终启用,不需要将其包含在限制中。

在可能的情况下,此静态函数使用原生文件对话框而不是QFileDialog。在不支持选择远程文件的平台,Qt将允许选择只包含本地文件。

static getSaveFileName([parent=None[, caption=""[, dir=""[, filter=""[, selectedFilter=""[, options=QFileDialog.Options()]]]]])#
参数:
  • parentQWidget

  • caption – 字符串

  • dir – str

  • filter – 字符串

  • selectedFilter – 字符串

  • optionsOption的组合

返回类型:

(文件名, selectedFilter)

警告

本节包含自动将 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。参数 dirselectedFilterfilter 可以是空字符串。多个过滤器用“;;”分隔。例如

"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()]]]]]]])#
参数:
  • parentQWidget

  • caption – 字符串

  • dirQUrl

  • filter – 字符串

  • selectedFilter – 字符串

  • optionsOption的组合

  • supportedSchemes – 字符串列表

返回类型:

(文件名, selectedFilter)

这是一个方便的静态函数,它返回用户选择的文件。该文件不一定存在。如果用户按下取消,则返回一个空 URL。

该函数的使用方法与 getSaveFileName() 类似。特别是 parentcaptiondirfilterselectedFilteroptions 都以完全相同的方式进行使用。

getSaveFileName() 的主要区别来自于提供给用户选择远程文件的能力。这就是为什么返回类型以及 dir 的类型为 QUrl。

supportedSchemes 参数允许限制用户可以选择的 URL 类型。这是应用程序声明其支持的协议以保存文件内容的一种方式。空列表表示不应用任何限制(默认)。对本地文件("file" 类型的方案)的支持是隐含的,始终启用;不需要将其包含在限制中。

在可能的情况下,此静态函数使用原生文件对话框而不是QFileDialog。在不支持选择远程文件的平台,Qt将允许选择只包含本地文件。

history()#
返回类型:

字符串列表

返回文件对话框的浏览历史记录,以路径列表的形式。

另请参阅

setHistory()

iconProvider()#
返回类型:

QAbstractFileIconProvider

返回文件对话框使用的图标提供者。

另请参阅

setIconProvider()

itemDelegate()#
返回类型:

QAbstractItemDelegate

返回用于在文件对话框视图中的项目进行渲染的委托。

另请参阅

setItemDelegate()

labelText(label)#
参数:

labelDialogLabel

返回类型:

字符串

返回在文件对话框中指定 label 显示的文本。

另请参阅

setLabelText()

mimeTypeFilters()#
返回类型:

字符串列表

返回在该文件对话框上运行的 MIME 类型过滤器。

另请参阅

setMimeTypeFilters()

nameFilters()#
返回类型:

字符串列表

返回在该文件对话框上运行的文件类型过滤器。

另请参阅

setNameFilters()

open(receiver, member)#
参数:
  • receiverQObject

  • member – str

此函数将弹出一个对话框,并将由receivermember指定的槽连接到通知选择更改的信号。如果fileModeExistingFiles,则这是filesSelected()信号,否则是fileSelected()信号。

当对话框关闭时,信号将从槽断开连接。

options()#
返回类型:

Option的组合

另请参阅

setOptions()

proxyModel()#
返回类型:

QAbstractProxyModel

返回文件对话框所使用的代理模型。默认未设置代理。

另请参阅

setProxyModel()

restoreState(state)#
参数:

stateQByteArray

返回类型:

bool

将对话框的布局、历史记录和当前目录恢复到指定的state

通常与 QSettings 一起使用来恢复会话保存的大小。

如果有错误返回false

staticsaveFileContent(fileContent, fileNameHint[, parent=None])#
参数:

警告

本节包含自动将 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()#
返回类型:

QByteArray

保存对话框布局、历史记录和当前目录的状态。

通常与QSettings一起使用,以便记住未来会话的大小。数据部分存储了一个版本号。

selectFile(filename)#
参数:

filename – str

在文件对话框中选择指定的filename

另请参阅

selectedFiles()

selectMimeTypeFilter(filter)#
参数:

filter – 字符串

设置当前的MIME类型过滤器。

selectNameFilter(filter)#
参数:

filter – 字符串

设置当前的文件类型过滤器。可以在filter中通过分号或空格分隔多个过滤器。

selectUrl(url)#
参数:

urlQUrl

在文件对话框中选择指定的url

注意

非原生QFileDialog仅支持本地文件。

另请参阅

selectedUrls()

selectedFiles()#
返回类型:

字符串列表

返回一个包含对话框中选定文件的绝对路径的字符串列表。如果没有选择文件,或者模式不是ExistingFilesExistingFile,则selectedFiles()包含视口中的当前路径。

selectedMimeTypeFilter()#
返回类型:

字符串

返回用户在文件对话框中选择的文件的 MIME 类型。

selectedNameFilter()#
返回类型:

字符串

返回用户在文件对话框中选择的过滤器。

另请参阅

selectedFiles()

selectedUrls()#
返回类型:

列表 QUrl

返回了一个包含文件对话框中选择的文件 URL 列表。如果没有选择文件,或者模式不是 ExistingFilesExistingFile ,则 selectedUrls() 包含视口中当前路径。

setAcceptMode(mode)#
参数:

modeAcceptMode

另请参阅

acceptMode()

属性 acceptMode 的设置器。

setDefaultSuffix(suffix)#
参数:

suffix – str

另请参阅

defaultSuffix()

属性 defaultSuffix 的设置器。

setDirectory(directory)#
参数:

directoryQDir

这是一个重载函数。

setDirectory(directory)
参数:

directory – 字符串

设置文件对话框的当前目录。

注意

在iOS上,如果将directory设置为QStandardPaths::standardLocations(QStandardPaths::PicturesLocation).last(),则使用原生图像选择器对话框来访问用户的相册。返回的文件名可以使用QFile和相关的API进行加载。要启用此功能,项目文件中分配给QMAKE_INFO_PLIST的Info.plist必须包含键NSPhotoLibraryUsageDescription。有关此键的更多信息,请参阅苹果的Info.plist文档。此功能是在Qt 5.5中添加的。

另请参阅

directory()

setDirectoryUrl(directory)#
参数:

directoryQUrl

设置文件对话框的当前directory URL。

注意

非原生QFileDialog仅支持本地文件。

注意

在Windows上,可以将表示一个虚拟文件夹(例如“计算机”或“网络”)的URL传递过去。这是通过传递一个使用clsid方案的QUrl来完成的,后面跟一个去除大括号的CLSID值。例如,URL clsid:374DE290-123F-4565-9164-39C4925E467B 表示下载位置。要查看可能的完整值列表,请参阅MSDN上的KNOWNFOLDERID 文档。此功能是在Qt 5.5中添加的。

另请参阅

directoryUrl() QUuid

setFileMode(mode)#
参数:

modeFileMode

另请参阅

fileMode()

文件模式属性fileMode的设置器。

setFilter(filters)#
参数:

filtersFilter的组合

设置用于模型的过滤器为filters。该过滤器用于指定应显示哪种类型的文件。

另请参阅

filter()

setHistory(paths)#
参数:

paths – 字符串列表

设置文件对话框的浏览历史记录包含给定的paths

另请参阅

history()

setIconProvider(provider)#
参数:

providerQAbstractFileIconProvider

将文件对话框所使用的图标提供者设置为指定的provider

另请参阅

iconProvider()

setItemDelegate(delegate)#
参数:

delegateQAbstractItemDelegate

将用于在文件对话框中渲染项目的项目代理设置为指定的delegate

任何现有的代理将被移除,但不会被删除。 QFileDialog 不会取得 delegate 的所有权。

警告

不应在多个视图中共享相同的代理实例。这样做可能会由于每个与给定代理关联的视图可能会接收到 closeEditor() 信号并尝试访问、修改或关闭已关闭的编辑器而导致不正确或不直观的编辑行为。

请注意,使用的模型是 QFileSystemModel。它具有自定义项目数据角色,这由 Roles 枚举描述。如果您只想使用自定义图标,可以使用 QFileIconProvider

setLabelText(label, text)#
参数:

在文件对话框中将指定 label 中显示的 text 设置。

另请参阅

labelText()

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

另请参阅

mimeTypeFilters()

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 类型作为过滤器,您就可以打开所有这些文件。

另请参阅

nameFilters()

setOption(option[, on=true])#
参数:
  • optionOption

  • on – bool

如果 on 为 true,则将给定的 option 设置为启用状态;否则,清除给定的 option

在更改对话框属性或显示对话框之前,应该设置选项(尤其是 DontUseNativeDialog 选项)。

在对话框可见时设置选项可能不会立即影响对话框(取决于选项和平台)。

在其他属性更改后设置选项可能会导致这些值没有任何效果。

另请参阅

options testOption()

setOptions(options)#
参数:

optionsOption的组合

另请参阅

options()

setProxyModel(model)#
参数:

modelQAbstractProxyModel

将视图的模型设置为提供的 proxyModel。如果您想修改底层模型,这很有用;例如,添加列、过滤数据或添加驱动器。

将移除任何现有的代理模型,但不会删除它。文件对话框将拥有对 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():
        # ...

那么文件对话框看起来是这样

../../_images/filedialogurls.png

另请参阅

sidebarUrls()

setSupportedSchemes(schemes)#
参数:

schemes – list of strings

另请参阅

supportedSchemes()

supportedSchemes 属性的设置器。

setViewMode(mode)#
参数:

modeViewMode

另请参阅

viewMode()

viewMode 属性的设置器。

sidebarUrls()#
返回类型:

列表 QUrl

返回目前位于侧边栏的 url 列表

另请参阅

setSidebarUrls()

supportedSchemes()#
返回类型:

字符串列表

另请参阅

setSupportedSchemes()

supportedSchemes 属性的获取器。

testOption(option)#
参数:

optionOption

返回类型:

bool

如果给定的 option 被启用,则返回 true;否则,返回 false

另请参阅

options setOption()

urlSelected(url)#
参数:

urlQUrl

当选择改变并且对话框被接受时,会发出此信号,带有(可能为空)的已选择 url

urlsSelected(urls)#
参数:

urls – .list of QUrl

当选择更改且对话框被接受时,此信号会发出(可能为空的)选择 urls 列表。

viewMode()#
返回类型:

ViewMode

另请参阅

setViewMode()

属性 viewModeᅟ 的获取器。