文件对话框QML类型

原生的文件对话框。更多...

导入语句import Qt.labs.platform
继承

对话框

属性

详细描述

FileDialog类型提供了原生平台文件对话框的QML API。

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

MenuItem {
    text: "Open..."
    onTriggered: fileDialog.open()
}

FileDialog {
    id: fileDialog
    currentFile: document.source
    folder: StandardPaths.writableLocation(StandardPaths.DocumentsLocation)
}

MyDocument {
    id: document
    source: fileDialog.file
}

可用性

当前以下平台上可用原生平台文件对话框

  • Android
  • iOS
  • Linux(当使用GTK+平台主题时运行)
  • macOS
  • Windows

Qt Labs Platform模块在未提供原生实现的平台上使用Qt Widgets作为后备。因此,应将使用Qt Labs平台模块的类型的应用程序链接到QtWidgets并使用QApplication而不是QGuiApplication

要链接到QtWidgets库,请将以下内容添加到您的qmake项目文件中

QT += widgets

main() 中创建一个 QApplication 实例。

#include <QApplication>
#include <QQmlApplicationEngine>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QQmlApplicationEngine engine;
    engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
    return app.exec();
}

注意:Qt.labs 模块中的类型未来版本不保证兼容性。

另请参阅:FolderDialogStandardPaths

属性文档

acceptLabel : string

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

当设置为空字符串时,使用底层平台的默认标签。默认标签通常是 打开保存,具体取决于对话框使用的哪个 fileMode

默认值为空字符串。

另请参阅:rejectLabel


currentFile : url

此属性包含当前在对话框中选定的文件。

file 属性不同,当用户正在对话框中选择文件时,currentFile 属性会被更新,甚至在最终选择完成之前。

另请参阅:filecurrentFiles


currentFiles : list<url>

此属性包含当前在对话框中选定的文件。

files 属性不同,当用户正在对话框中选择文件时,currentFiles 属性会被更新,甚至在最终选择完成之前。

另请参阅:filescurrentFile


defaultSuffix : string

此属性包含添加到未指定后缀的选定文件的后缀。后缀通常用于指示文件类型(例如,“txt”表示文本文件)。

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


file : url

此属性包含最终接受的文件。

currentFile 属性不同,file 属性在用户在对话框中选择文件时不会更新,只会在最终选择完成之后更新。也就是说,当用户单击 OK 以接受文件时。或者,可以处理 accepted() 信号以获取最终选择。

另请参阅:currentFileaccepted


fileMode : enumeration

此属性包含对话框的模式。

有效值

常量描述
FileDialog.OpenFile对话框用于选择现有文件(默认)。
FileDialog.OpenFiles对话框用于选择多个现有文件。
FileDialog.SaveFile对话框用于选择任何文件。文件不必存在。

files : list<url>

此属性包含最终接受的文件。

currentFiles 属性不同,当用户在对话框中选择文件时,files 属性不会更新,只有当最终选择完成时才会更新。也就是说,当用户点击 OK 确认文件选择后。另外,也可以处理 accepted() 信号以获取最终选择。

另请参阅 currentFilesaccepted


folder : url

该属性保存文件被选择的文件夹。选择文件夹时,请使用 FolderDialog 而不是 FileDialog。

另请参阅 FolderDialog


nameFilters : list<string>

该属性包含了限制可选择文件类型的过滤器。

FileDialog {
    nameFilters: ["Text files (*.txt)", "HTML files (*.html *.htm)"]
}

注意: *.* 不是一个可移植的过滤器,因为操作系统上关于文件扩展名决定文件类型的假设并不一致。有可能存在没有点的文件名(例如,Makefile)。在原生的 Windows 文件对话框中,*.* 会匹配此类文件,而其他类型的文件对话框可能不会。因此,如果你想选择任何文件,最好使用 *

另请参阅 selectedNameFilter


options : flags

该属性包含了影响对话框外观和感觉的选项。

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

应该在与对话框显示之前设置这些选项。当对话框可见时设置它们,保证对话框会立即受到影响是不确定的(取决于选项和平台)。

可用选项

常量描述
FileDialog.DontResolveSymlinks在文件对话框中不解析符号链接。默认情况下,符号链接会被解析。
FileDialog.DontConfirmOverwrite如果选择了一个现有的文件,则不请求确认。默认情况下,请求确认。
FileDialog.ReadOnly指示对话框不允许创建目录。
FileDialog.HideNameFilterDetails指示是否隐藏文件名过滤器细节。

rejectLabel : string

此属性 Holding the label text shown on the button that rejects the dialog。

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

默认值为空字符串。

另请参阅 acceptLabel


selectedNameFilter 组

selectedNameFilter.extensions : list<string>

selectedNameFilter.index : int

selectedNameFilter.name : string

这些属性保存当前所选的名字过滤器。

名称描述
index : int此属性决定了哪个 name filter 被选中。当对话框打开时,将选择指定的过滤器。当用户选择另一个过滤器时,该值将更新。
[只读] name : string此属性保存所选过滤器的名称。在下面的示例中,第一个过滤器的名称是 "文本文件",第二个是 "HTML 文件"
[只读] extensions : list<string>该属性包含选定筛选器的扩展列表。例如,下面的第一筛选器的扩展列表是["txt"],第二筛选器是["html", "htm"]
FileDialog {
    id: fileDialog
    selectedNameFilter.index: 1
    nameFilters: ["Text files (*.txt)", "HTML files (*.html *.htm)"]
}

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

另请参阅 nameFilters


© 2024 Qt公司 Ltd. 本文档中的文档贡献版权归各自所有者所有。提供的文档受GNU自由文档许可证版本1.3的条款约束,该许可证由自由软件基金会发布。Qt及其相关标志是芬兰以及/或在其他国家的Qt公司有限公司的商标。所有其他商标均为其各自所有者的财产。