0
我想在QML中将ListModel的内容绘制到画布。此模型的内容显示在应用程序中其他位置的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时” 而不是 “数”? –
谢谢!调用行计数作为函数'rowCount()'解决了它。 –