我创建了一个普通的标签栏,并在我的 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   回答