Я сделал очень простой пример QAbstractListModel. Этот пример также представлен по этой ссылке: http://doc.qt.io/qt-5/qtquick-models-abstractitemmodel-example.html . Результат программы такой:
результат программы
Я сделал небольшое изменение на view.qml, как это
ComboBox {
id:mycombo
width: 200; height: 250
model: myModel
textrole:"type"onCurrentTextChanged: {
console.log(mycombo.model.get(currentIndex).size);
}
}
здесь, Combobox показывает тип животных. Но я хочу написать значение ‘size’ при событии onCurrentTextChanged. Но я не могу получить значение типа.
Я думаю, что в вашей реализации модели cpp произошел сбой.
Потому что, когда я использую модель qml, она работает как следует:
ListModel {
id: myModel
ListElement{
type: "mouse"size: "small"}
ListElement{
type: "cat"size:"medium"
}
ListElement{
type: "elephant"size:"large"}
}
ComboBox {
id:mycombo
width: 200; height: 250
model: myModel
textRole:"type"
onCurrentTextChanged: {
console.log(mycombo.model.get(currentIndex).size);
}
}
Выход:
qml: small
qml: medium
qml: large
Других решений пока нет …