2017-01-12 5 views
0

단추를 클릭 할 때마다 Component의 개체를 생성하는 작은 QML 응용 프로그램을 작성했습니다.특정 구성 요소에 액세스하는 방법

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 값을 변경하십시오.

특정 구성 요소에 액세스 할 수있는 방법이 있습니까?

FYI : 을 "rectagleMade"에 추가하고 실제 작업을 수행 할 수 없습니다. 실제 응용 프로그램에서이 사각형은 다른 응용 프로그램의 dBus를 통해 제어되기 때문에 가능하지 않습니다. (QtWayland의 윈도우 관리자입니다.)

감사합니다.

답변

0

귀하는 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... 
    } 
}