Потому что вы используете неправильную функцию.
Qt.createComponent
принимает URL-адрес в качестве параметра и возвращает новый Component
.
У вас уже есть Component
, поэтому вам не нужна эта функция.
Вам нужно Component.createObject
. Он создает экземпляр объекта из Component
.
Ваш код становится
list.model = l1.createObject();
Обратите внимание, что вам не нужно использовать Component
в вашем примере, если вы не возражаете против создания обеих моделей с самого начала:
ApplicationWindow {
id: window
visible: true
width: 640
height: 480
property bool typelist : false
ListModel{
id: listModel1
ListElement { test: "blue" }
}
ListModel{
id: listModel2
ListElement { test: "red" }
ListElement { test: "blue" }
}
ListView {
id: listView
width: parent.width
height: parent.height * 0.75
model: typelist ? listModel1 : listModel2
delegate: Rectangle{
width: parent.width
height: 50
color: model.test
}
}
Button {
width: parent.width
height: parent.heigth*0.25
anchors.bottom:parent.bottom
onClicked: typelist=!typelist
}
}