Я не думаю, что ListElements можно использовать как отдельные файлы.Это потому, что когда вы делаете это, вы неявно создаете Компонент с вашим содержимым внутри (в данном случае ListElement).Однако ListModel может принимать только ListElements в качестве своих дочерних элементов, а не Компоненты с вложенными ListElements внутри.
Однако, чтобы динамически определить элементы модели, вы можете объявить ListModel, а затем добавить свои данные с помощью фрагмента JavaScript.Например, в вашем обработчике Component.onCompleted.
Если вы посмотрите на API для ListModel, вы увидите, что среди прочего у него есть метод append ().Вы можете передать JS словарь этому методу, и он добавит новый ListElement в список и заполнит его свойства в соответствии со словарем.
Пример:
import QtQuick 1.0
Rectangle {
width: 360
height: 360
ListView {
id:list
anchors.fill: parent
model: ListModel {
ListElement { foo: "hello" }
}
delegate: Text {
text: foo
width: ListView.view.width
}
Component.onCompleted: {
list.model.append({ "foo": "world" })
}
}
}
Ваш список появится сдве вещи в нем: "привет" и "мир"