属性
fileUrl : urlfileUrls : listfolder : urlmodality : Qt::WindowModalitynameFilters : listselectExisting : boolselectFolder : boolselectMultiple : boolselectedNameFilter : stringtitle : stringvisible : bool方法
void close()void open()详细描述 文件对话框提供了一个基本的文件选择:它允许用户选择存在的的文件和/或目录,或者创建新的文件名。该对话框最初是不可见的。首先需要设置任意的属性,然后设置visible为true或调用open()方法。 这里是一个小例子,打开一个文件对话框,用户选择一个文件后退出:
nameFilters 设置文件的过滤,我们这里支持MP3和wav nameFilters: [ “MP3 files (.mp3)”, “Wave files (.wav)” ]
其他的也可进行别样设置!
onAccepted 用于选中文件通知后的处理
UI结束了,此时这只是个静态的qml文件,我们需要通过一个view将改qml所表示的内容展示出来,这里我们通过QQuickView来实现对qml文件的加载,同时实现窗体的无边框(你可以通过QML Engine来加载qml文件)
import QtQuick 2.1 import QtQuick.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的应用将是一个平台的颜色对话框。如果这不可能,那么它会尝试实例化一个QFileDialog。如果那也不可能,那么它将依赖QML应用,DefaultFileDialog.qml 。在这种情况下,你可以自定义外观,编辑这个文件。 DefaultFileDialog.qml 包含一个矩形来保持对话框的内容,因为某些嵌入式系统中不支持多个顶层窗口。当对话变得可见时,它会自动被包裹在一个窗口中,如果只能有一个窗口,则简单地出现在主窗口的顶部。
属性文档
fileUrl : url这是由用户选择的文件的路径。 注意:只有当一个文件被选中此属性才被设置,其他情况,将是空。
fileUrls : list由用户选择的文件的路径列表。
folder : url当前选定的文件夹的路径。之前调用的open()来设置此属性将导致文件浏览器最初定位在指定的文件夹中。 关闭对话框后,此属性的值也被更新。 默认情况下,此属性为false。
modality : Qt::WindowModality对话框对于其父窗口是否应该显示模态对话框。 默认是Qt.WindowModal。 模态并不意味着有任何阻塞调用等待被接受或拒绝的对话框,它只是阻止用户与父窗口或应用程序窗口同时交互。
nameFilters : list被用来作为文件名过滤器的字符串列表。每个字符串可以是空格分隔的列表中的过滤器,过滤器可能包括?和*通配符。筛选器列表也可以被括在括号中的文字描述的过滤器提供。 例如: FileDialog { nameFilters: [ “Image files (.jpg .png)”, “All files (*)” ] } 注:目录不包括过滤器。
selectExisting : bool是否只有现有的文件或目录可以被选择。 默认情况下,此属性为true。此属性必须设置为所需的值,然后再打开对话框。将此属性设置为false,意味着对话框命名文件要保存的东西,或者要创建一个文件夹命名,因此selectMultiple是false。
selectFolder : bool是否选择的应该是一个文件夹。 默认情况下,此属性为false。此属性必须设置为所需的值,然后再打开对话框。将此属性设置为true意味着selectMultiple是false,并且selectExisting是true。
selectMultiple : bool是否可以选择一个以上的文件名。 默认情况下,此属性为false。此属性必须设置为所需的值,然后再打开对话框。将此属性设置为true意味着selectExisting为true。
selectedNameFilter : string当前选定的是哪一个nameFilters。 这个属性可以在对话框可见之前设置,设置默认名称的过滤器,也可以在对话框可见设置当前名称过滤器时设置。当用户选择了一个不同的过滤器它也会被更新。
title : string对话框标题。
visible : bool这个属性确定对话框是否可见。默认为false。
方法文档
void close()关闭对话框。
void open()显示对话框给用户。相当于设置visible为true。
新闻热点
疑难解答