gpt4 book ai didi

javascript - 无法将 QQmlListReference 分配给 QString

转载 作者:行者123 更新时间:2023-12-03 03:57:16 25 4
gpt4 key购买 nike

所以我在列表模型和委托(delegate)方面遇到了一个有趣的问题。

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});
}
}

当我尝试将新元素附加到列表模型时,出现此错误:“无法将 QQmlListReference 分配给 QString。”我终于发现问题是我的列表元素被称为数据。我只是将其命名为其他名称,并且效果很好。我认为问题在于“data”是保留字,但我在 Javascript 或 QML 列表中找不到它。虽然我找不到官方的 qml 保留字列表。那么你们知道更完整的列表吗?我希望避免再次找到这样的保留字,或者如果问题实际上是其他问题,我希望听到答案。

这些是我正在查看的列表:

https://www.w3schools.com/js/js_reserved.asp (Javascript)。

https://git.eclipse.org/c/cdt/org.eclipse.cdt.git/commit/?id=4cc61d0449ed463408633016759694bc59badc04 (qml)

提前致谢!!

最佳答案

你是对的,你的问题是因为你的列表元素 Angular 色称为data

根本问题是,当您执行 text: data 时,您正在访问 data property您的文本项目。您的模型数据被该属性隐藏。

为了安全起见,请在对 Angular 色的访问权限前添加 model 前缀,以避免与委托(delegate)属性发生命名冲突。在您的情况下,它将是 text: model.data

data 不是保留关键字,它只是碰巧是委托(delegate)属性之一的名称。

关于javascript - 无法将 QQmlListReference 分配给 QString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44888935/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com