![](/img/trans.png)
[英]QML - Using ListView with dynamically generated ListElement
[英]Dynamically create QML ListElement and content
所以我試圖在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);
現在我沒有錯誤,但元素仍未顯示在列表中。
我不確定為什么這不起作用,但使用普通的舊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"
};
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.