我不知道如何使用 QList 作为模型。有几个数据类型是一维的示例,但还没有看到像这样嵌套的东西。相关代码如下:
main.cpp - 在这里我注册了 QList
viewer.rootContext()->setContextProperty("productlist", QVariant::fromValue(databaseController.listProjects()) );
Run Code Online (Sandbox Code Playgroud)
main.qml - 在这里我想使用模型“productlist”
ListView {
id: list_view
anchors.fill: parent
model: productlist
delegate:
Rectangle{
height: 20
width: 200
color: "#CCCCCC"
Text { text: modelData.name }
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,如果我使用databaseController.listProjects()[0],我当然可以获得第一个QVariantMap,并且该示例有效,尽管我不确定如何迭代值和/或键。
我正在使用 QtQuick 2.0 和 Qt 5
我读过一些关于 QAbstractListModel 的内容,但不知道如何使用它..我走在正确的轨道上还是有更简单的方法?
感谢您的帮助
您可以轻松地使用 QVariantList 作为 ListView 的模型,但您需要知道它将是只读的,因为 QVariantList/QVariantMap 的 value() 是 const :
QVariantList myModel;
foreach (QVariantMap item, databaseController.listProjects()) {
myModel.append (item);
}
viewer.rootContext()->setContextProperty("productlist", QVariant::fromValue(myModel));
Run Code Online (Sandbox Code Playgroud)
完成了!