qml repeater 交换 index
时间: 2023-10-16 18:11:06 浏览: 178
如果你想在 QML Repeater 中交换元素的位置,可以通过改变元素的索引来实现。例如,如果你想交换索引为 1 和 2 的元素,可以使用以下代码:
```
property int index1: 1
property int index2: 2
Repeater {
model: ["item1", "item2", "item3", "item4"]
delegate: Item {
property int currentIndex: index
// 根据 currentIndex 来设置元素的位置
x: currentIndex * 100
// 其他属性
Text {
text: modelData
}
}
}
Button {
text: "Swap"
onClicked: {
// 交换索引为 index1 和 index2 的元素
var temp = repeater.itemAt(index1).currentIndex
repeater.itemAt(index1).currentIndex = repeater.itemAt(index2).currentIndex
repeater.itemAt(index2).currentIndex = temp
}
}
```
在这个例子中,我们为每个元素添加了一个 `currentIndex` 属性来保存它们的索引。在 delegate 中,我们可以使用这个属性来设置元素的位置。当我们想交换两个元素时,我们只需交换它们的 `currentIndex` 属性即可。
阅读全文