我不知道如何使用 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 的内容,但不知道如何使用它。我是在正确的轨道上还是有更简单的方法?
谢谢你的帮助
最佳答案
您可以轻松地将 QVariantList 用作 ListView 的模型,但您需要知道它将是只读的,因为 QVariantList/QVariantMap 的 value() 是常量:
QVariantList myModel;
foreach (QVariantMap item, databaseController.listProjects()) {
myModel.append (item);
}
viewer.rootContext()->setContextProperty("productlist", QVariant::fromValue(myModel));
完成了!
关于c++ - 使用 QList<QVariantMap> 作为 QML ListView 的模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17017365/