有没有什么可以在运行时从qml文件向QDeclarativeListProperty添加项目的原因? 在一个循环中,例如:
var i;
for(i = 0 ; i < 100 ; ++i)
{
listOfItems.append(MyItem {text:"list"+i})
}
和listOfItems是QDeclarativeListProperty列表...... 我不想这样做:
listOfItems:
[
MyItem{text:"list val1"},
MyItem{text:"list val2"},
......
]
我在qml中显示此列表,列表的数据来自qt对象....
答案 0 :(得分:2)
你不能,QDeclarativeListProperty
(或Qt5中的QQmlListProperty
)只受影响一次,在实例化时,你不能在此之后追加/删除其中的任何元素。
此外,在JavaScript代码中,您无法使用Class { }
语法格式,而是特定于QML。
答案 1 :(得分:0)
如果我的问题得到解决,您正在寻找Component.onCompleted信号
http://doc.qt.nokia.com/main-snapshot/qml-component.html#onCompleted-signal