qml之FileDialog

屬性

fileUrl : url
fileUrls : list
folder : url
modality : Qt::WindowModality
nameFilters : list
selectExisting : bool
selectFolder : bool
selectMultiple : bool
selectedNameFilter : string
title : string
visible : 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。

發佈了20 篇原創文章 · 獲贊 10 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章