Imgx要素のプロパティを変更する方法がある以下のコードについて教えてください。 javascriptを使用してimgx.xの値を変更する必要があります。または他の方法はありますか? qt docsを検索しましたが、役に立ちませんでした。ありがとう。
Row {
Repeater {
id:mmm
model : 10
Rectangle{
clip: true
width: 54
height: 80
color:"transparent"
Image {
id:imgx
//x:-160
//x:-105
//x:-50
x:0
source: "images/tarama_lights.png"
}
}
}
}
リピーターの直接の子(この場合はRectangle)にプロパティを追加し、それを内部の子(この場合はImage)のプロパティのターゲットとして設定する必要があります。その後、mmm.itemAt(<index of the element>).<property> = value
を使用できます。コード:
Repeater {
id:mmm
model : 10
Rectangle{
clip: true
width: 54
height: 80
color:"transparent"
property int imageX: 0 //adding property here
Image {
id:imgx
x: parent.imageX //setting property as the target
source: "images/tarama_lights.png"
}
}
}
次に、次のようにプロパティを変更できます。
onPropertyChange: {
mmm.itemAt(index).imageX = newValue //the index defines which rectangle you change
}
JuliusGの答えは、itemAt
を使用することです。ただし、内部の子(この場合は画像)のプロパティのターゲットとして設定する必要はありません。あなたはあなたのコードをそのままにしておくそして代わりに
onPropertyChange: { mmm.itemAt(index).imageX = newValue //the index defines which rectangle you change }
これを使って:
onPropertyChange: { mmm.itemAt(index).children[0].x = newValue //the index defines which rectangle you change }
それが役に立てば幸い。