你能告诉我下面的代码有什么方法可以改变imgx元素属性吗?我必须使用 javascript 更改 imgx.x 值。或者还有其他办法吗?我搜索 qt 文档但没有帮助。谢谢。
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"
}
}
}
}
您必须将一个属性添加到 Repeater 的直接子级(在您的情况下为矩形),并将其设置为内部子级(在您的情况下为图像)中的属性的目标。然后您可以使用
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 }
希望有帮助。