我想在2个列表视图中使用2个模型,但第2个列表不像第一个列表那样填充 . 我使用的代码如下:
Q_DECL_EXPORT int main(int argc, char *argv[])
{
QScopedPointer<QApplication> app(createApplication(argc, argv));
MyModel myModel;
myModel.addPrimaryData(ModelItem(1, "Apple"));
myModel.addPrimaryData(ModelItem(2, "Orange"));
myModel.addPrimaryData(ModelItem(3, "Banana"));
MyModel myModel2;
myModel2.addSecondaryData(ModelItem(1, "Apple2"));
myModel2.addSecondaryData(ModelItem(2, "Orange2"));
myModel2.addSecondaryData(ModelItem(3, "Banana2"));
QDeclarativeView declView;
QDeclarativeContext *declContext = declView.rootContext();
declContext->setContextProperty("myModel", &myModel);
declContext->setContextProperty("myModel2", &myModel2);
declView.setSource(QUrl("qml/MyDemo/main.qml"));
declView.show();
return app->exec();
}
如上所示,我创建了2个模型,即myModel和myModel2,并在QML中的2个Listy视图中使用 .
ListView1使用模型myModel,ListView2使用模型myModel2 . 但myModel2数据未显示在列表中 .
任何具体原因 . 请回复你的想法 .
我使用的QML代码如下:
ListView {
id:firstListView
model: myModel
delegate: Item{
id: firstDelegate
Text {
text: name
color: "white"
}
}
}
ListView {
id: secondListView
model: myModel2
delegate: Item{
id: secondDelegate
Text {
text: name
color: "white"
}
}
}
1 回答
由于您尚未向我们提供
MyModel
实施,因此我们无法提供帮助 . 现在我可以建议的是检查以下内容:确保第二个模型的角色名称实际上是"name" .
确保第二个
ListView
不只是隐藏在第一个下面 .比较
addPrimaryData
和addSecondaryData
之间的实现,以确保代码在两者中都有效 .如果您想要更具体的答案,您必须向我们展示您的
MyModel
如何运作 .