Javascript 无法将QQmlListReference分配给QString
因此,我对列表模型和代理有一个有趣的问题Javascript 无法将QQmlListReference分配给QString,javascript,qml,qt-creator,Javascript,Qml,Qt Creator,因此,我对列表模型和代理有一个有趣的问题 ListView{ .... delegate: Component { Text{ text: data } } } ... ListModel { id: captureModel } ... function updateList() { ... for (var i = 0; i < list.rows.length; ++i) {
ListView{
....
delegate: Component {
Text{
text: data
}
}
}
...
ListModel {
id: captureModel
}
...
function updateList() {
...
for (var i = 0; i < list.rows.length; ++i) {
captureModel.append({"data": list.rows.item(i).data});
}
}
当我试图将新的元素附加到列表模型时,我遇到了一个错误:无法将qqmllistreeference分配给QString。我最终发现问题在于我的列表元素名为data。我只是给它起了个别的名字,效果很好。我认为问题在于数据是一个保留字,但我在Javascript或QML列表中都找不到它。虽然我找不到正式的qml保留字列表。你们知道更完整的清单吗?我希望避免再次发现像这样的保留词,或者如果这个问题实际上是其他问题,我希望听到答案
以下是我正在查看的列表:
Javascript
qml
提前谢谢 您是对的,您的问题是因为您的列表元素角色被称为数据 潜在的问题是,当您执行text:data时,您正在访问文本项的名称。您的模型数据将被特性遮挡 为了安全起见,请在访问角色之前加上model前缀,以避免命名与代理属性冲突。在您的情况下,它将是text:model.data 数据不是保留关键字,它只是代理的一个属性的名称