FileDialog QML Type
文件对话框。更多...
| Import Statement: | import QtQuick.Dialogs |
| Since: | Qt 6.2 |
| Inherits: |
属性
- acceptLabel : string
- currentFolder : url
- defaultSuffix : string
- fileMode : enumeration
- nameFilters : list<string>
- options : flags
- rejectLabel : string
- selectedFile : url
- selectedFiles : list<url>
- selectedNameFilter
- selectedNameFilter.extensions : list<string>
- selectedNameFilter.globs : list<string>
- selectedNameFilter.index : int
- selectedNameFilter.name : string
详细说明
FileDialog 类型为文件对话框提供了一个 QML API。

要显示文件对话框,请创建 FileDialog 实例,设置所需属性,并调用open()。可通过currentFolder 属性确定对话框打开的文件夹。selectedFile 和selectedFiles 属性可用于确定对话框打开时选中的文件,并在用户在对话框中选择文件以及对话框被接受时进行更新。
import QtCore
import QtQuick
import QtQuick.Controls
import QtQuick.Dialogs
ApplicationWindow {
width: 640
height: 480
visible: true
header: ToolBar {
Button {
text: qsTr("Choose Image...")
onClicked: fileDialog.open()
}
}
Image {
id: image
anchors.fill: parent
fillMode: Image.PreserveAspectFit
}
FileDialog {
id: fileDialog
currentFolder: StandardPaths.standardLocations(StandardPaths.PicturesLocation)[0]
onAccepted: image.source = selectedFile
}
}可用性
目前,以下平台支持原生平台文件对话框:
- Android
- iOS
- Linux(使用 GTK+ 平台主题运行时)
- macOS
- Windows
Qt Quick Dialogs 在没有原生实现的平台上,会使用Qt Quick 的实现作为备用方案。
另请参阅 FolderDialog 和StandardPaths 。
属性文档
acceptLabel : string
该属性用于存储接受对话框的按钮上显示的标签文本。
当设置为空字符串时,将使用底层平台的默认标签。默认标签通常为“Open ”或“Save ”,具体取决于对话框所处的“fileMode ”环境。
默认值为空字符串。
另请参阅 rejectLabel 。
currentFolder : url
该属性存储用于选择文件的文件夹。可以设置该属性来控制对话框打开时显示的初始目录。
若要选择文件夹,请改用FolderDialog 。
defaultSuffix : string
此属性保存一个后缀,该后缀将附加到未指定后缀的选定文件上。该后缀通常用于标识文件类型(例如,“txt”表示文本文件)。
如果文件名的第一个字符是点('.'),则将其删除。
fileMode : enumeration
该属性保存对话框的模式。
可用值:
| 常量 | 描述 |
|---|---|
FileDialog.OpenFile | 该对话框用于选择现有文件(默认)。 |
FileDialog.OpenFiles | 该对话框用于选择多个现有文件。 |
FileDialog.SaveFile | 该对话框用于选择任意文件。该文件不必实际存在。 |
nameFilters : list<string>
此属性包含用于限制可选文件类型的筛选条件。
FileDialog {
nameFilters: ["Text files (*.txt)", "HTML files (*.html *.htm)"]
}不同平台可能以不同方式限制可选文件。例如,macOS 会禁用不符合筛选条件的文件条目,而 Windows 则会将其隐藏。
注意: *.*并非一个通用过滤器,因为“文件扩展名决定文件类型”这一历史假设在各个操作系统上并不一致。可能存在文件名中不含点的情况(例如,Makefile )。 在原生的 Windows 文件对话框中,*.*会匹配此类文件,但在其他类型的文件对话框中则可能无法匹配。因此,若要选择任意文件,最好使用*。
另请参阅 selectedNameFilter 。
options : flags
该属性包含影响对话框外观和风格的各种选项。
默认情况下,所有选项均处于禁用状态。
应在显示对话框之前设置这些选项。若在对话框可见时进行设置,则无法保证能立即对对话框产生影响(具体取决于选项和平台)。
可用选项:
| 常量 | 描述 |
|---|---|
FileDialog.DontResolveSymlinks | 在文件对话框中不解析符号链接。默认情况下会解析符号链接。 |
FileDialog.DontConfirmOverwrite | 若选中现有文件,则不提示确认。默认情况下会提示确认。 |
FileDialog.ReadOnly | 表示该对话框不允许创建目录。 |
FileDialog.HideNameFilterDetails | 指示文件名过滤器详细信息是否被隐藏。 |
FileDialog.DontUseNativeDialog | 强制对话框使用非原生的快速实现。 |
rejectLabel : string
该属性用于存储“拒绝”对话框的按钮上显示的标签文本。
当设置为空字符串时,将使用底层平台的默认标签。默认标签通常为Cancel 。
默认值为空字符串。
另请参阅 acceptLabel 。
selectedFile : url
该属性保存了在对话框中最后选中的文件。
可以通过设置该属性来控制对话框打开时选中的文件。
如果有多个选定的文件,则该属性指代第一个文件。
每次用户在对话框中选择文件时,以及对话框被接受时,该属性的值都会更新。处理accepted() 信号以获取最终选择。
另请参阅 selectedFiles 、accepted() 和currentFolder 。
selectedFiles : list<url>
该属性保存了在对话框中最后选中的文件。
每次用户在对话框中选择文件时,以及对话框被接受时,该属性的值都会更新。处理accepted() 信号以获取最终的选择结果。
另请参阅 accepted() 和currentFolder 。
selectedNameFilter group
selectedNameFilter.extensions : list<string>
selectedNameFilter.globs : list<string>
selectedNameFilter.index : int
selectedNameFilter.name : string
这些属性保存了当前选中的名称过滤条件。
| 名称 | 描述 |
|---|---|
| index: int | 此属性用于确定选择哪个“name filter ”。打开对话框时,将选中指定的筛选器。当用户选择另一个筛选器时,该值会随之更新。 |
| [只读]name: string | 该属性存储所选过滤器的名称。在下面的示例中,第一个过滤器的名称为"Text files" ,第二个为"HTML files" 。 |
| [只读]extensions: 列表<字符串> | 该属性存储所选过滤器的扩展名列表。在下面的示例中,第一个过滤器的扩展名列表为["txt"] ,第二个为["html", "htm"] 。 |
| [只读]globs:list<string> | 该属性保存所选过滤器的通配符列表。在下例中,第一个过滤器的通配符列表为["*.txt"] ,第二个为["*.html", "*.htm"] 。该属性与FolderListModel 的nameFilters 属性结合使用时非常有用,例如。 |
FileDialog {
id: fileDialog
selectedNameFilter.index: 1
nameFilters: ["Text files (*.txt)", "HTML files (*.html *.htm)"]
}
MyDocument {
id: document
fileType: fileDialog.selectedNameFilter.extensions[0]
}另请参阅 nameFilters 。
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.