Здравствуйте. Изучаю сейчас QML, и возникла странная проблема.Создал небольшую программу для динамического добавления каких-то компонентов в ListModel
. Имеется две кнопки: Add Spinbox (добавить), Check (проверить). Первая кнопка просто добавляет SpinBox
в ListModel
. Вторая, чисто для проверки, выводит значение 0-го элемента из списка.
Проблема заключается в том, что значение _value
остается неизменным даже, если мы поменяли значение в SpinBox
Так вот, если задавать значение через строку, допустим 0-му SpinBox
‘у зададим значение 20:
listModel.get(0)._value = 20
то всё будет работать. Точнее, значение 20 установится в 0-й элемент. Но считывать данные не получается. Выводится число, которое задавалось в append
Минимальный код:
import QtQuick 2.10 import QtQuick.Window 2.10 import QtQuick.Controls 2.2 Window { visible: true width: 640 height: 480 Row { id: row anchors.top: parent.top anchors.left: parent.left anchors.right: parent.right height: parent.height / 10 spacing: 2 Button { id: addButton text: "Add Spinbox" height: parent.height width: parent.width/2 x: 0 y: 0 onClicked: { listModel.append({"_value": 10}); } } Button { id: checkButton text: "Check" height: parent.height width: parent.width / 2 x: parent.width - width y: 0 onClicked: { console.log(listModel.get(0)._value) } } } ListView { id: listView anchors.top: row.bottom anchors.left: parent.left anchors.right: parent.right anchors.bottom: parent.bottom spacing: 3 delegate: Item { id: item height: 30 width: 200 SpinBox { anchors.fill: parent value: _value } } model: ListModel { id: listModel } } }
Что я делаю не так?