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()'解決了它。 –