qt QDeclarativeListProperty从qml应用程序添加项目

时间:2011-06-30 05:37:29

标签: qt qml

有没有什么可以在运行时从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对象....

2 个答案:

答案 0 :(得分:2)

你不能,QDeclarativeListProperty(或Qt5中的QQmlListProperty)只受影响一次,在实例化时,你不能在此之后追加/删除其中的任何元素。

此外,在JavaScript代码中,您无法使用Class { }语法格式,而是特定于QML。

答案 1 :(得分:0)

如果我的问题得到解决,您正在寻找Component.onCompleted信号

http://doc.qt.nokia.com/main-snapshot/qml-component.html#onCompleted-signal