1

QList をモデルとして使用する方法がわかりません。データ型が 1 次元の例がいくつかありますが、このようにネストされたものは見たことがありません。以下の関連コード:

main.cpp - ここで QList を登録します

viewer.rootContext()->setContextProperty("productlist", QVariant::fromValue(databaseController.listProjects()) );

main.qml - ここではモデル 'productlist' を使用したい

ListView {
    id: list_view

    anchors.fill: parent
    model: productlist
    delegate:
        Rectangle{
           height: 20
           width: 200
           color: "#CCCCCC"
           Text { text:  modelData.name }
        }
}

databaseController.listProjects()[0]を使用すると、もちろん最初の QVariantMap を取得でき、例は機能しますが、値やキーを反復する方法はわかりません。

QtQuick 2.0 と Qt 5 を使用しています

私は QAbstractListModel について何か読んだことがありますが、それを使用する方法がわかりません..私はそこで正しい軌道に乗っていますか、それとももっと簡単な方法がありますか?

ご協力いただきありがとうございます

4

1 に答える 1

5

QVariantList/QVariantMap の value() は const であるため、読み取り専用になることを知る必要がありますが、QVariantList を ListView のモデルとして簡単に使用できます。

QVariantList myModel;
foreach (QVariantMap item, databaseController.listProjects()) {
    myModel.append (item);
}

viewer.rootContext()->setContextProperty("productlist", QVariant::fromValue(myModel));

そして、それは完了です!

于 2013-06-17T11:50:01.820 に答える