屬性
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。
新聞熱點
疑難解答