Я пытаюсь нарисовать содержимое ListModel на холсте в QML. Содержимое этой модели отображается в ListView в другом месте приложения, поэтому я знаю, что модель правильно заполнена содержимым.QML-итерация через модель
Нет Я пытаюсь обновлять холст каждый раз, когда изменения модели данных:
import QtQuick 2.7
import QtQml.Models 2.2
Item {
Canvas {
anchors.fill: parent
id: canvas
onPaint: {
console.log("onPaint()")
var ctx = getContext("2d")
ctx.fillStyle = Qt.rgba(0, 0, 0, 1)
ctx.fillRect(0, 0, width, height)
console.log(particleListModel.count)
for(var i = 0; i < particleListModel.count; i++) {
console.log(i)
}
}
}
Connections {
target: particleListModel
onDataChanged: {
console.log("data changed")
canvas.requestPaint()
}
}
}
После того, как я изменить данные (в C++) Я получаю dataChanged()
сигнал и onPaint()
холста вызывается. Однако отладочный вывод
console.log(particleListModel.count)
является «неопределенным».
Как это может быть, в то время как обычный ListView способен отображать контент правильно?
не следует использовать «сверку» вместо «подсчета»? –
Спасибо! Вызов числа строк в качестве функции 'rowCount()' решил. –