中继器访问元素

Repeater access elements

我有以下 Repeater:

Repeater{
    id: rainDropId
    model: 200

    delegate: Rectangle {

        x: Math.floor(Math.random() * windowId.width)
        y: Math.floor(Math.random() * windowId.height)
        property int mLayer: Math.floor(Math.random() * 4) + 1

        property double mYSpeed: -2.0 * mLayer

        width:5
        height:5
        color: "#3399FF"
        radius: width*0.5
    }
}

我有一个 Timer。 我想根据自己的属性修改 Repeater 中所有元素的位置。我怎样才能从 Timer?

访问类似 rainDropId[index] 的内容

谢谢

使用RepeateritemAt()方法:

import QtQuick 2.4
import QtQuick.Window 2.2

Window {
    id: windowId
    visible: true
    width: 400
    height: 400

    Repeater {
        id: rainDropId
        model: 200

        delegate: Rectangle {
            width:5
            height:5
            color: "#3399FF"
            radius: width*0.5
        }
    }

    Timer {
        running: true
        interval: 1000
        repeat: true
        triggeredOnStart: true
        onTriggered: {
            for (var i = 0; i < rainDropId.count; ++i) {
                rainDropId.itemAt(i).x = Math.floor(Math.random() * windowId.width);
                rainDropId.itemAt(i).y = Math.floor(Math.random() * windowId.height);
            }
        }
    }
}

您也可以考虑使用 Qt Quick Particles 来制作雨滴。