所以我试图在ListModel
中动态创建ListElements。这很好用,直到我尝试在ListElements中编写一些动态加载的内容。
我尝试使用ListElement
内部和小时作为属性创建一个自己的文件,但是模型然后我得到一个错误,说ListElements不能嵌套。
运行以下代码的错误是:
无法分配给不存在的属性"小时"
我该如何解决这个问题?
代码:
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;
}
}
修改 将函数中的代码行更改为:
var object = Qt.createQmlObject('import QtQuick 2.0; ListElement { property string hour: "23" }', parent);
现在我没有错误,但元素仍未显示在列表中。
答案 0 :(得分:11)
我不确定为什么它不起作用,但是使用普通的旧JavaScript对象可以完成这项工作:
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"
};
}
}
}