QAbstractListModel для Combobox, Как получить значение a Когда выберите значение b

Я сделал очень простой пример 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. Но я не могу получить значение типа.

1 ответ

Я думаю, что в вашей реализации модели 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
Другие вопросы по тегам