我无法弄清楚如何使用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的内容,但无法弄清楚如何使用它..我是在正确的轨道上还是有更简单的方法?
感谢您的帮助
答案 0 :(得分:4)
您可以轻松地使用QVariantList作为ListView的模型,但您需要知道它将是只读的,因为QVariantList / QVariantMap的value()是const:
QVariantList myModel;
foreach (QVariantMap item, databaseController.listProjects()) {
myModel.append (item);
}
viewer.rootContext()->setContextProperty("productlist", QVariant::fromValue(myModel));
已经完成了!