如何访问特定组件

How to access a specific Component

我写了一个小的 QML 应用程序,它会在每次单击按钮时创建一个 Component 的对象。

import QtQuick 2.6
import QtQuick.Window 2.2

Window {
    id: mainWindow
    visible: true
    width: 1280
    height: 720

    property int idNumberCounter: 1

    Component {
        id: testComponent

        Rectangle {
            id: rectangleMade
            property int idNumber: 0
            width: 100
            height: 100
            x: 100*idNumber
            border.color: "blue"
        }
    }

    //The button for creating
    Rectangle {
        id: buttonMakeRectangle
        color: "red"
        width: 50
        height: 50
        MouseArea {
            anchors.fill: parent
            onClicked: {
                testComponent.createObject(mainWindow,idNumber:mainWindow.idNumberCounter);
                mainWindow.idNumberCounter++;
            }
        }
    }
}

我现在想做的是有第二个按钮,例如使用 idNumber = 3(如果可用)更改矩形的 x 值。

是否有访问特定组件的方法?

仅供参考:将 MouseArea 添加到 "rectagleMade" 并简单地执行那里的工作是不可能的,因为在实际应用程序中,此矩形是通过另一个应用程序的 dBus 控制的。 (它将成为 QtWayland 的窗口管理器)

感谢您的帮助。

你可以使用 js 数组

Window {
    property var myList: []
    function createItem() {
        var item = testComponent.createObject(mainWindow, idNumber:mainWindow.idNumberCounter);
        myList.push(item);
        mainWindow.idNumberCounter++;
     }

     function doSomehting() {
        var item  = myList[3];
        // do something...
     }
}