0
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" を使うべきではないのですか? –
ありがとうございます!行数を関数 'rowCount()'で呼び出すことでそれを解決しました。 –