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++; 
      } 
     } 
    } 
} 

私が今したいのは、2番目のボタンを持つことです。矩形のx値をidNumber = 3(使用可能な場合)に変更します。

特定のコンポーネントにアクセスする方法はありますか?

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... 
    } 
} 
関連する問題