1

n9 用のアプリを作成していますが、データベースに問題があります。アプリに main.cpp またはその他の c++ ファイルを使用していません。qml内からjavascriptを使用してデータベースにデータを作成、削除、追加などします。現在、すべてのエントリを含む文字列を単純に出力しています。すべて正常に動作します。しかし今、データベース内のエントリを ListView として表示したいと考えています。どうやってやるの?

4

1 に答える 1

1

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");
}
于 2013-04-01T14:59:04.477 に答える