PySide6.QtWidgets.QFileDialog

class QFileDialog

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

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)”中给定的模式匹配的文件。文件对话框的父级设置为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)"。这意味着只有扩展名为pngxpmjpg的文件会在QFileDialog中显示。你可以通过使用setNameFilters()来应用多个过滤器。使用selectNameFilter()来选择你提供的过滤器之一作为文件对话框的默认过滤器。

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

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

另请参阅

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

Access functions:
property defaultSuffixᅟ: str

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

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

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

Access functions:
property fileModeᅟ: QFileDialog.FileMode

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

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

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

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

另请参阅

FileMode

Access functions:
property optionsᅟ: Combination of QAbstractFileIconProvider.Option

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

默认情况下,所有选项都被禁用。

选项(特别是DontUseNativeDialog选项)应在更改对话框属性或显示对话框之前设置。

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

在更改其他属性后设置选项可能会导致这些值无效。

另请参阅

setOption() testOption()

Access functions:
property supportedSchemesᅟ: list of strings

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

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

Access functions:
property viewModeᅟ: QFileDialog.ViewMode

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

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

另请参阅

ViewMode

Access functions:
__init__(parent, f)
Parameters:

使用给定的parent和小部件flags构建一个文件对话框。

__init__([parent=None[, caption=""[, directory=""[, filter=""]]]])
Parameters:
  • parentQWidget

  • caption – str

  • directory – str

  • filter – str

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

acceptMode()
Return type:

AcceptMode

另请参阅

setAcceptMode()

属性 acceptModeᅟ 的获取器。

currentChanged(path)
Parameters:

路径 – 字符串

当当前文件因本地操作而更改时,会发出此信号,并将新文件名作为path参数。

另请参阅

filesSelected()

currentUrlChanged(url)
Parameters:

urlQUrl

当当前文件发生变化时,会发出此信号,并将新文件的URL作为url参数。

另请参阅

urlsSelected()

defaultSuffix()
Return type:

字符串

另请参阅

setDefaultSuffix()

属性 defaultSuffixᅟ 的获取器。

directory()
Return type:

QDir

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

另请参阅

setDirectory()

directoryEntered(directory)
Parameters:

目录 – str

当用户进入directory时,此信号会为本地操作发出。

directoryUrl()
Return type:

QUrl

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

另请参阅

setDirectoryUrl()

directoryUrlEntered(directory)
Parameters:

目录QUrl

当用户进入一个directory时,会发出此信号。

fileMode()
Return type:

FileMode

另请参阅

setFileMode()

属性 fileModeᅟ 的获取器。

fileSelected(file)
Parameters:

文件 – str

当本地操作的选择发生变化并且对话框被接受时,会发出此信号,并带有(可能为空的)选定的file

另请参阅

currentChanged() Accepted

filesSelected(files)
Parameters:

files – 字符串列表

当本地操作的选择发生变化并且对话框被接受时,会发出此信号,并带有(可能为空的)selected文件列表。

filter()
Return type:

Filter的组合

返回用于显示文件的过滤器。

另请参阅

setFilter()

filterSelected(filter)
Parameters:

filter – 字符串

当用户选择一个filter时,会发出此信号。

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

  • caption – str

  • dir – str

  • optionsOption 的组合

Return type:

字符串

警告

本节包含从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()]]]]])
Parameters:
  • parentQWidget

  • caption – str

  • dirQUrl

  • optionsOption 的组合

  • supportedSchemes – 字符串列表

Return type:

QUrl

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

该函数的使用方式类似于getExistingDirectory()。特别是parentcaptiondiroptions的使用方式完全相同。

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

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

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

static getOpenFileName([parent=None[, caption=""[, dir=""[, filter=""[, selectedFilter=""[, options=QFileDialog.Options()]]]]]])
Parameters:
  • parentQWidget

  • caption – str

  • dir – str

  • filter – str

  • selectedFilter – str

  • optionsOption 的组合

Return type:

(fileName, 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,文件对话框将符号链接视为普通目录。

static getOpenFileNames([parent=None[, caption=""[, dir=""[, filter=""[, selectedFilter=""[, options=QFileDialog.Options()]]]]]])
Parameters:
  • parentQWidget

  • caption – str

  • dir – str

  • filter – str

  • selectedFilter – str

  • optionsOption 的组合

Return type:

(fileNames, selectedFilter)

警告

本节包含从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。参数dirselectedFilterfilter可以为空字符串。如果需要多个过滤器,请用‘;;’分隔它们,例如:

"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/tmpoptions参数包含有关如何运行对话框的各种选项,有关可以传递的标志的更多信息,请参见Option枚举。

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

  • caption – str

  • dirQUrl

  • filter – str

  • selectedFilter – str

  • optionsOption 的组合

  • supportedSchemes – 字符串列表

Return type:

(fileName, 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()]]]]]]])
Parameters:
  • parentQWidget

  • caption – str

  • dirQUrl

  • filter – str

  • selectedFilter – str

  • optionsOption 的组合

  • supportedSchemes – 字符串列表

Return type:

(fileName, selectedFilter)

这是一个方便的静态函数,返回用户选择的一个或多个现有文件。如果用户按下取消,它将返回一个空列表。

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

getOpenFileNames()的主要区别在于用户可以选择远程文件。这就是为什么返回类型和dir的类型分别是QList和QUrl。

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

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

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

  • caption – str

  • dir – str

  • filter – str

  • selectedFilter – str

  • optionsOption 的组合

Return type:

(fileName, 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,文件对话框将符号链接视为普通目录。

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

  • caption – str

  • dirQUrl

  • filter – str

  • selectedFilter – str

  • optionsOption 的组合

  • supportedSchemes – 字符串列表

Return type:

(fileName, selectedFilter)

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

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

getSaveFileName()的主要区别在于用户可以选择远程文件。这就是为什么返回类型和dir的类型是QUrl。

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

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

history()
Return type:

字符串列表

返回文件对话框的浏览历史记录作为路径列表。

另请参阅

setHistory()

iconProvider()
Return type:

QAbstractFileIconProvider

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

另请参阅

setIconProvider()

itemDelegate()
Return type:

QAbstractItemDelegate

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

另请参阅

setItemDelegate()

labelText(label)
Parameters:

标签DialogLabel

Return type:

字符串

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

另请参阅

setLabelText()

mimeTypeFilters()
Return type:

字符串列表

返回在此文件对话框上操作的MIME类型过滤器。

另请参阅

setMimeTypeFilters()

nameFilters()
Return type:

字符串列表

返回在此文件对话框中生效的文件类型过滤器。

另请参阅

setNameFilters()

open(receiver, member)
Parameters:
  • receiverQObject

  • member – str

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

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

options()
Return type:

Option的组合

另请参阅

setOptions()

proxyModel()
Return type:

QAbstractProxyModel

返回文件对话框使用的代理模型。默认情况下没有设置代理。

另请参阅

setProxyModel()

restoreState(state)
Parameters:

状态QByteArray

Return type:

布尔

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

通常这与QSettings一起使用,以从过去的会话中恢复大小。

如果有错误,返回 false

static saveFileContent(fileContent, fileNameHint[, parent=None])
Parameters:

警告

本节包含从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:

QByteArray

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

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

selectFile(filename)
Parameters:

文件名 – str

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

另请参阅

selectedFiles()

selectMimeTypeFilter(filter)
Parameters:

filter – 字符串

设置当前的MIME类型 filter

selectNameFilter(filter)
Parameters:

filter – 字符串

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

selectUrl(url)
Parameters:

urlQUrl

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

注意

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

另请参阅

selectedUrls()

selectedFiles()
Return type:

字符串列表

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

selectedMimeTypeFilter()
Return type:

字符串

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

selectedNameFilter()
Return type:

字符串

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

另请参阅

selectedFiles()

selectedUrls()
Return type:

.list of QUrl

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

setAcceptMode(mode)
Parameters:

modeAcceptMode

另请参阅

acceptMode()

属性 acceptModeᅟ 的设置器。

setDefaultSuffix(suffix)
Parameters:

suffix – str

另请参阅

defaultSuffix()

属性 defaultSuffixᅟ 的设置器。

setDirectory(directory)
Parameters:

目录QDir

这是一个重载函数。

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中添加。

另请参阅

directory()

setDirectoryUrl(directory)
Parameters:

目录QUrl

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

注意

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

注意

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

另请参阅

directoryUrl() QUuid

setFileMode(mode)
Parameters:

modeFileMode

另请参阅

fileMode()

属性 fileModeᅟ 的设置器。

setFilter(filters)
Parameters:

filtersFilter 的组合

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

另请参阅

filter()

setHistory(paths)
Parameters:

paths – 字符串列表

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

另请参阅

history()

setIconProvider(provider)
Parameters:

providerQAbstractFileIconProvider

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

另请参阅

iconProvider()

setItemDelegate(delegate)
Parameters:

delegateQAbstractItemDelegate

设置用于在文件对话框中渲染视图项的项目委托为给定的 delegate

任何现有的委托将被移除,但不会被删除。QFileDialog 不拥有 delegate 的所有权。

警告

您不应在视图之间共享同一个委托实例。这样做可能会导致不正确或不符合直觉的编辑行为,因为连接到给定委托的每个视图可能会接收到closeEditor()信号,并尝试访问、修改或关闭已经关闭的编辑器。

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

setLabelText(label, text)
Parameters:

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

另请参阅

labelText()

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

另请参阅

mimeTypeFilters()

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++")

注意

使用Android的原生文件对话框时,会使用与给定名称过滤器匹配的MIME类型,因为只支持MIME类型。

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 类型过滤器可以让你打开所有这些文件。

另请参阅

nameFilters()

setOption(option[, on=true])
Parameters:
  • optionOption

  • on – 布尔值

如果on为真,则启用给定的option;否则,清除给定的option

选项(特别是DontUseNativeDialog选项)应在更改对话框属性或显示对话框之前设置。

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

在更改其他属性后设置选项可能会导致这些值无效。

另请参阅

options testOption()

setOptions(options)
Parameters:

optionsOption 的组合

另请参阅

options()

setProxyModel(model)
Parameters:

模型QAbstractProxyModel

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

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

然后文件对话框看起来像这样:

../../_images/filedialogurls.png

另请参阅

sidebarUrls()

setSupportedSchemes(schemes)
Parameters:

schemes – 字符串列表

另请参阅

supportedSchemes()

属性 supportedSchemesᅟ 的设置器。

setViewMode(mode)
Parameters:

modeViewMode

另请参阅

viewMode()

属性 viewModeᅟ 的设置器。

sidebarUrls()
Return type:

.list of QUrl

返回当前在侧边栏中的URL列表

另请参阅

setSidebarUrls()

supportedSchemes()
Return type:

字符串列表

另请参阅

setSupportedSchemes()

属性 supportedSchemesᅟ 的获取器。

testOption(option)
Parameters:

选项Option

Return type:

布尔

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

另请参阅

options setOption()

urlSelected(url)
Parameters:

urlQUrl

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

urlsSelected(urls)
Parameters:

urls – QUrl 的列表

当选择发生变化并且对话框被接受时,会发出此信号,并带有(可能为空的)所选urls列表。

viewMode()
Return type:

ViewMode

另请参阅

setViewMode()

属性 viewModeᅟ 的获取器。