1

我不知道如何使用 QList 作为模型。有几个示例数据类型是一维的,但还没有看到像这样嵌套的东西。相关代码如下:

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 用作 ListView 的模型,但您需要知道它是只读的,因为 QVariantList/QVariantMap 的 value() 是 const :

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

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

它完成了!

于 2013-06-17T11:50:01.820 回答