Qml “类型转换”XmlListModel到Listmodel
我有一个XmlListModel,它可以从Web服务器获取数据,这非常有效 但是,我想在Colibri库的CLComboBox中使用它 如果我将参数ListModel设置为我的XmlListModel,我会得到:Qml “类型转换”XmlListModel到Listmodel,qml,Qml,我有一个XmlListModel,它可以从Web服务器获取数据,这非常有效 但是,我想在Colibri库的CLComboBox中使用它 如果我将参数ListModel设置为我的XmlListModel,我会得到: Non-existent attached object ListModel:xmlModel13 但它确实存在;因为ListView对象可以使用完全相同的模型 在我看来,CLComboBox只接受ListModel,那么,有什么方法可以轻松地将XmlListMo
Non-existent attached object
ListModel:xmlModel13
但它确实存在;因为ListView对象可以使用完全相同的模型
在我看来,CLComboBox只接受ListModel,那么,有什么方法可以轻松地将XmlListModel转换为ListModel呢?您可以使用循环在CLComboBox中填充ListModel。您可以使用循环在CLComboBox中填充ListModel。您不能将QDeclarativeXmlListModel转换为QDeclarativeListModel,因为它们都是QListModelInterface 在我看来,Colibri应该使用QObject variant属性,而不是QDeclarativeListModel。并倾听基于标准项目的模型信号,例如,我相信它可以通过一些努力得到修复 如果你不愿意为Colibri捐款,我认为@sabbour的答案是最好的选择。考虑简单的例子:
XmlListModel {
id: xmlModel
source: "http://forumcinemas.lv/rus/xml/Events/"
query: "/Events/Event"
XmlRole { name: "label"; query: "Title/string()" }
XmlRole { name: "value"; query: "ID/number()"; isKey: true }
onStatusChanged: {
if (status == XmlListModel.Ready) {
for (var i=0; i<count; i++) {
var item = get(i)
list_model.append({label: item.label,
value: item.value,
selected: false})
}
// CLComboBox doesnt seem to listen for model updates
combo_box.items = list_model
}
}
}
ListModel {
id: list_model
}
CLComboBox {
id: combo_box
// ...
}
无法将QDeclarativeXmlListModel强制转换为QDeclarativeListModel,因为它们都是QListModelInterface的直接后代
在我看来,Colibri应该使用QObject variant属性,而不是QDeclarativeListModel。并倾听基于标准项目的模型信号,例如,我相信它可以通过一些努力得到修复
如果你不愿意为Colibri捐款,我认为@sabbour的答案是最好的选择。考虑简单的例子:
XmlListModel {
id: xmlModel
source: "http://forumcinemas.lv/rus/xml/Events/"
query: "/Events/Event"
XmlRole { name: "label"; query: "Title/string()" }
XmlRole { name: "value"; query: "ID/number()"; isKey: true }
onStatusChanged: {
if (status == XmlListModel.Ready) {
for (var i=0; i<count; i++) {
var item = get(i)
list_model.append({label: item.label,
value: item.value,
selected: false})
}
// CLComboBox doesnt seem to listen for model updates
combo_box.items = list_model
}
}
}
ListModel {
id: list_model
}
CLComboBox {
id: combo_box
// ...
}