FileDialog
ImportStatement: import QtQuick.Dialogs 1.1
Since: Qt 5.1
Properties
fileUrl :url
fileUrls :list<url>
folder : url
modality :Qt::WindowModality
nameFilters: list<string>
selectExisting: bool
selectFolder: bool
selectMultiple: bool
selectedNameFilter: string
title :string
visible :bool
Methods
void close()
void open()
DetailedDescription
FileDialog提供基本的文件选择。它允许我们选择一个现有的文件或目录,或者创建一个新文件。窗口一开始是不可见的。我们必须根据需要首先设置属性,然后调用open()或设置visible为真,才能看到窗口。
下面是打开一个窗口并在用户选择文件之后结束的代码:
importQtQuick 2.2
importQtQuick.Dialogs 1.0
FileDialog {
id: fileDialog
title: "Please choose a file"
onAccepted: {
console.log("You chose: " +fileDialog.fileUrls)
Qt.quit()
}
onRejected: {
console.log("Canceled")
Qt.quit()
}
Component.onCompleted: visible = true
}
FileDialog窗口和父窗口关联。所以不管我们是在一个组件中还是在一个窗口中宣部FileDialog,窗口都将出现在包含组件的窗口的中间或我们宣布的窗口的中间。如果可能,FileDialog将是平台的文件选择窗口,如果没有,则是QFileDialog的实例,如果还没有,则是QML的实现。QML的实现文件是DefaultFileDialog.qml。在这种情况下,我们可通过编辑这个文件定制文件选择窗口的内容。一些平台不支持多个顶层窗口,在这种情况下,如果文件选择窗口可见,它将自动包含在顶层窗口中。如果平台只支持一个窗口,它将替换成为顶层窗口。
PropertyDocumentation
fileUrl :url
比用户选择的文件路径的URL。
注意:只有一个文件被选中时,这个属性被设置,其他的情况下,它是空的。
fileUrls :list<url>
用户选择的文件路径的URL的列表。
folder : url
当前选择的文件夹的URL。在open()调用之前设置这个属性,将促使文件选择窗口浏览到我们指定的位置。就是在我们设置的路径下选择文件。这个属性在我们关闭窗口的时候,会更新。默认为空。
modality :Qt::WindowModality
窗口的模态。模态窗口指用户在采取有效的关闭手段之前,只能在该窗口操作。非模态窗口指用户可以切换到其他窗口操作。默认非模太。模态不意味着在模态窗口关闭之前,其他窗口式阻塞的。它仅仅指用户不能同时操作其他窗口。在MacOS中,颜色窗口只能是非模太的。另外,我们可能需要编写onAccepted处理来加载或保存选择的文件。
nameFilters: list<string>
过滤器列表。过滤器列表中的过滤器能被空格分隔。过滤可以包含“?”和“*”通配符。过滤列表能封闭在括号里,同时提供过滤得文档描述。
例如:
FileDialog {
nameFilters: [ "Image files (*.jpg*.png)", "All files (*)" ]
}
注意:目录不能过滤。
selectExisting: bool
是否只有存在的文件或目录能被选择。默认为真。这个属性必须在窗口打开前设置成需要的值。设置这个属性为假意味着窗口可为了保存一些东西命名新文件,或创建新的文件夹。此时selectMultiple必须是假。
selectFolder: bool
选择是否是文件夹。默认为假。这个属性必须在窗口打开前设置成需要的值。设置这个属性为假意味着selectMultiple必须是假而selectExisting必须为真。
selectMultiple: bool
是否允许选择多于一个文件。默认为假。这个属性必须在窗口打开前设置成需要的值。设置这个属性为真意味着selectExisting必须为真。
selectedNameFilter: string
当前选择nameFilters中的那个过滤器。这个属性能在窗口打开前设置,这是设置窗口的默认过滤器。它也能在窗口打开后设置,这将用新的过滤器刷新用户选择窗口。
title :string
窗口的标题。
visible :bool
窗口是否可见(打开)。默认为假。
MethodDocumentation
void close()
关闭窗口。
void open()
展现窗口给用户,等效于设置visible为真。