Dynamically create QML ListElement and content
因此,我尝试在
我尝试制作一个以
运行以下代码的错误是:
Cannot assign to non-existent property"hour"
我该如何解决?
代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | import QtQuick 2.0 ListModel { id: listModel Component.onCompleted: { for (var i = 0; i < 24; i++) { var object = createListElement(listModel) } } function createListElement(parent) { var object = Qt.createQmlObject('import QtQuick 2.0; ListElement { hour:"01" }', parent); return object; } } |
编辑:
将函数中的代码行更改为:
1 | var object = Qt.createQmlObject('import QtQuick 2.0; ListElement { property string hour:"23" }', parent); |
现在我没有收到任何错误,但是元素仍然没有显示在列表中。
我不确定为什么这行不通,但是使用普通的旧JavaScript对象就可以了:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | import QtQuick 2.4 import QtQuick.Window 2.0 Window { width: 400 height: 400 ListView { id: listView anchors.fill: parent model: listModel delegate: Rectangle { width: listView.width height: listView.height / 4 Text { text: hour anchors.centerIn: parent } } } ListModel { id: listModel Component.onCompleted: { for (var i = 0; i < 24; i++) { append(createListElement()); } } function createListElement() { return { hour:"01" }; } } } |