本文主要是介绍QML:ListElement: cannot use script for property value,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 背景
- 如何解决呢?
背景
项目中经常用到mvc 或mvd ,尤其在qml中经常有如下场景:
一个listview,一个delegete 和 一个 model,但是有时候model会遇到model的属性,会是动态属性,即需要从外部获取的。
比如 :
property var url1 : myobject.getUrl1()
property var url2 : myobject.getUrl2()
ListModel {id: tidModeListElement { name: qsTr("历史记录"); source: url1 }ListElement { name: qsTr("c收藏夹"); source: url2 }...}
其中 ListElement的元素 url是通过外部来动态获取的,此时,qml 就会报错ListElement: cannot use script for property value
如何解决呢?
可通过js方法来创建model即可
property var url1 : myobject.getUrl1()
property var url2 : myobject.getUrl2()
ListModel {id: tidMode//ListElement { name: qsTr("历史记录"); source: url1 }//ListElement { name: qsTr("c收藏夹"); source: url2 }//...Component.onCompleted: {tidMode.append({name: qsTr("历史记录"); source: url1});tidMode.append({ name: qsTr("c收藏夹"); source: url2});}
}
这篇关于QML:ListElement: cannot use script for property value的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!