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

发布于 2024-11-17 23:20:58 字数 456 浏览 0 评论 0原文

为什么要在运行时将项目从 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 对象......

is there any why to add item to QDeclarativeListProperty from qml file at run time?
in a loop, for example:

var i;
for(i = 0 ; i < 100 ; ++i)
{
listOfItems.append(MyItem {text:"list"+i})
}

and listOfItems is the QDeclarativeListProperty list...
i don't want to do that:

    listOfItems:     
   [               
        MyItem{text:"list val1"},
        MyItem{text:"list val2"},       
         ......
   ]

i display this list in qml and the data for the list comes from qt object....

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

酒废 2024-11-24 23:20:58

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

此外,在 JavaScript 代码中,您不能使用 Class { } 语法形式,它是 QML 特定的。

You can't, QDeclarativeListProperty (or QQmlListProperty in Qt5) is affected only once, at instanciation time, you can't append/remove any element in it after that.

More, in JavaScript code, you can't use the Class { } syntax form, it's QML specific.

月竹挽风 2024-11-24 23:20:58

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

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

If I get your problem right you are looking for the Component.onCompleted signal

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文