2
我正在學習使用Qt Quick來創建文件管理器,但我一般沒有QML或GUI的經驗。第一步是使用FolderListModel
列出文件夾的內容。我得到example code工作使用ListView
,但自然我想顯示多個字段除了名稱,例如大小,時間等等。因此,我正在考慮使用TableView
。在TableView中委託FolderListModel
但是,我不清楚如何將每個條目委託爲TableView
中的一行。目前,我只是簡單地使用itemDelegate
來顯示fileName
,結果是在每一行中,所有列重複條目的名稱。所以我認爲rowDelegate
是正確的方法,但是如何爲此目的制定合適的代表Component
?從概念上說,我想指定一個字段數組,例如對應於表格列的[model.fileName, model.fileSize]
。這是可以實現的嗎?
爲了澄清我張貼下面的代碼:
import QtQuick 2.4
import QtQuick.Controls 1.4
import QtQuick.Dialogs 1.2
import QtQuick.Layouts 1.1
import Qt.labs.folderlistmodel 2.1
ApplicationWindow {
visible: true
width: 900
height: 600
title: qsTr("Hello World")
Item {
anchors.fill: parent
width: 900
height: 600
SplitView {
id: splitView1
anchors.fill: parent
TabView {
id: tabView1
width: splitView1.width/2
Tab {
title: qsTr("Home")
TableView {
id: tableView1
width: splitView1.width/2
TableViewColumn {
role: "name"
title: qsTr("Name")
width: tableView1.width * 0.75
}
TableViewColumn {
role: "size"
title: qsTr("Size")
width: tableView1.width * 0.25
}
FolderListModel {
id: folderModel2
folder: "file:/home/username"
nameFilters: ["*"]
showHidden: true
}
Component {
id: fileDelegate2
Text {
text: model.fileName
}
}
model: folderModel2
itemDelegate: fileDelegate2
}
}
}
}
}
}