我创建了一个普通的标签栏,并在我的 sd 卡的特定目录中的列表视图中显示音乐文件。我希望在目录中下载新文件时更新列表。但是由于我已经在标签栏中显示了列表,所以 qml 是在开始时加载的。我该如何实施?
问问题
1421 次
2 回答
2
如果您可以选择,我会选择 QtQuick 2.0 实现并改用它。它将自动对文件夹中的更改做出反应。
否则,您别无选择,只能重新创建模型,例如
import QtQuick 1.1
import Qt.labs.folderlistmodel 1.0
ListView {
id: view
model: folderModel
delegate: Text { text: fileName }
property variant folderModel
function updateModel() {
var folder = ""
if (folderModel) {
folder = folderModel.folder
folderModel.destroy()
}
folderModel = modelComponent.createObject(view, {"folder": folder})
}
Component {
id: modelComponent
FolderListModel {}
}
Component.onCompleted: updateModel()
}
丑陋,但它的工作原理。
于 2012-07-09T01:42:41.587 回答
0
一旦从路径中添加或删除新文件,FolderListModel 似乎会自动更新列表:(Qt5.7.1)
ListView
{
id:myListViewUSB
anchors.fill: parent
FolderListModel
{
id: folderModelUSB
folder: "file:///mnt/usb"
}
model: folderModelUSB
delegate:
Text
{
text: fileName
anchors.horizontalCenter: parent.horizontalCenter
}
}
我通过在我的文件夹中添加和删除文件来测试它,它会自动出现在 ListView 上。
于 2017-06-28T08:22:31.383 回答