文件对话框 QML 类型

一个文件对话框。更多...

导入语句import QtQuick.Dialogs
Qt 6.2
继承

Dialog

属性

详细描述

FileDialog 类型提供了文件对话框的 QML API。

要显示文件对话框,构造一个 FileDialog 实例,设置所需的属性,然后调用 open。可以使用 currentFilecurrentFiles 属性来确定对话框中当前选定的文件。只有在接受对话框后,selectedFileselectedFiles 属性才会更新。

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 快速对话框在尚未提供原生实现的平台使用 Qt Quick 实现作为后备。

也看看FolderDialogStandardPaths

属性文档

acceptLabel : string

此属性包含显示在接受对话框的按钮上的标签文本。

当设置为空字符串时,将使用底层平台的默认标签。默认标签通常是打开保存,这取决于对话框在哪个文件模式中使用。

默认值为空字符串。

另请参阅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

此属性保存显示在拒绝对话框按钮上的标签文本。

当设置为空字符串时,将使用底层平台的默认标签。默认标签通常是取消

默认值为空字符串。

另请参阅 acceptLabel.


selectedFile : url

此属性持有在对话框中最后选定的文件。

可以设置此属性以控制对话框打开时选定的文件。

如果选择了多个文件,则此属性引用第一个文件。

每次用户在对话框中选定文件,以及当对话框被接受时,此属性的值都会更新。处理accepted() 信号以获取最终选择。

另请参阅 selectedFilesaccepted() 和 currentFolder.


selectedFiles : list<url>

此属性持有在对话框中最后选定的文件。

每次用户在对话框中选定文件,以及当对话框被接受时,此属性的值都会更新。处理accepted() 信号以获取最终选择。

另请参阅 accepted() 和 currentFolder.


selectedNameFilter 组

selectedNameFilter.extensions : list<string>

selectedNameFilter.globs : list<string>

selectedNameFilter.index : int

selectedNameFilter.name : string

这些属性持有当前选定的名称过滤器。

名称描述
index : int此属性确定选择哪个 名称过滤器。当对话框打开时,选择指定的过滤器。当用户选择其他过滤器时,值会更新。
[只读] name : string此属性保存选定过滤器的名称。在下面的示例中,第一个过滤器的名称是 "文本文件",第二个是 "HTML文件"
[只读] extensions : list<string>此属性保存选定过滤器的扩展名列表。在下面的示例中,第一个过滤器的扩展名列表是 ["txt"],第二个是 ["html", "htm"]
[只读] globs : list<string>此属性保存选定过滤器的 globs 列表。在下面的示例中,第一个过滤器的 globs 列表是 ["*.txt"],第二个是 ["*.html", "*.htm"]

此属性与 FolderListModel's nameFilters 属性等一起很有用。

FileDialog {
    id: fileDialog
    selectedNameFilter.index: 1
    nameFilters: ["Text files (*.txt)", "HTML files (*.html *.htm)"]
}

MyDocument {
    id: document
    fileType: fileDialog.selectedNameFilter.extensions[0]
}

另请参阅 nameFilters.


© 2024 The Qt Company Ltd. 本文档中的文档贡献归其各自所有者所有。此处提供的文档是在自由软件基金会发布的GNU自由文档许可证版本1.3 的条款下提供的。Qt及其徽标是芬兰以及/或世界上其他地区的The Qt Company Ltd.的商标。所有其他商标均为其各自所有者的财产。