对于FolderListModel中的每个委托项执行

时间:2013-05-31 21:12:35

标签: qt qml

我有一个QML应用程序,我目前在目录中列出文件。我现在想要添加一种方法来为每个代理项目运行一个函数,例如。对于set dir中的每个文件。 或者实际上每个文件都通过一个函数(将它们添加到本地数据库)

如何使用QML进行此操作?

1 个答案:

答案 0 :(得分:1)

您可以使用Component.onCompleted 但是这可能会被多次调用,因此我不建议您使用此更新数据库。 (我希望你有一个插件来更新数据库。)

import QtQuick 1.0
import Qt.labs.folderlistmodel 1.0

ListView {
    width: 200; height: 400

    FolderListModel {
        id: folderModel
        nameFilters: ["*.qml"]
    }

    Component {
        id: fileDelegate
        Text {
            text: fileName
            Component.onCompleted: {
                //DO WHATEVER YOU WANT HERE
                console.log("process the file"+fileName);
            }
        }
    }

    model: folderModel
    delegate: fileDelegate
}

原始代码取自http://doc.qt.digia.com/4.7/src-imports-folderlistmodel.html并经过修改以符合答案