QML Listview和c ++:未定义ReferenceError模型

时间:2017-09-20 09:50:58

标签: c++ qt listview qml

我想在QML中将我的C ++类显示为ListView。我有一个空的向量,稍后会被填充:

QList<QObject*> _myList;

并设置上下文

QQmlContext *ctxt = _eng->rootContext();
ctxt->setContextProperty("modelName",QVariant::fromValue(_myList));

在qml文件中我有

ListView {
    id: listView
    model: modelName
    delegate: myDelegate {}
}

但是在启动应用程序时,我收到以下错误

qrc:/screen2.qml:252: ReferenceError: modelName is not defined

我做错了什么?扼杀,错误并不会阻止列表在填充后正确显示。

1 个答案:

答案 0 :(得分:2)

在加载QML文件之前调用setContextProperty

当您加载QML文件时,引擎会评估其绑定,因为您尚未设置modelName的上下文属性,它会输出警告。 之后进行设置时,会重新评估此绑定,这就是为什么列表最终会在您的情况下正确显示。