从数据库加载QML元素到ListView



我正在为我的n9写一个应用程序,有一个数据库问题。我不使用main.cpp或其他c++文件的应用程序。我创建,删除,添加等数据到数据库中使用javascript从qml。现在我只是输出一个包含所有元素的字符串。一切正常。但现在我想把数据库中的条目显示为ListView。我该怎么做呢?

你可以为你的ListView动态创建一个模型。像这样:

import QtQuick 2.0
import "main.js" as Main
Rectangle {
    id: root
    ListView {
         width: 180; height: 200
         model: Main.createModel(root)
         delegate: Text {
             text: name + ": " + number
        }
     }
}    

main.js

function createModel(parent) {
    var s = 'import QtQuick 2.0; ListModel {n';
    var data = ["a", "b"];  // your data from database will be here
    for(var x in data) {
        var s2 = "ListElement {name: "" + x+ ""; number: "" + x + "" }n";
        s += s2;
    }
    s += "}n";
    console.log(s);
    return Qt.createQmlObject(s, parent, "mainModel");
}

最新更新