2014-01-25 17 views
1

我在我的QML中動態創建圖像。這是我使用的代碼:如何通過QML中的objectName調用ImageView

for (var n = 0; n < 3 * numberOfTiles; n ++) { 
      var image = imageDefinition.createObject(); 
      image.translationX = getX(n); 
      image.translationY = getY(n); 
      image.objectName = ("image"+n) 
      drawContainer.add(image); 
     } 

圖像創建工作得很好,但我不知道該怎麼稱呼這些圖像afterdawrds做。我不能將它們設置爲ID,並且我不知道是否設置了像這樣的objectName。

我沒有得到任何錯誤,如果這項工作,我怎麼能從QML調用「image3」來移動它?我不想使用C++。

回答

0

找到了我自己的解決方案。首先,我添加這個擁有全球訪問

property list<ImageView> images 

然後我創建陣列圖像,並複製它們在

onCreationCompleted: { 
    //you need a tmp variable, since you can't do that with property variant 
    var imagesTmp = Array(); 
    for (var n = 0; n < 3 * numberOfTiles; n ++) { 
     imagesTmp[n] = imageDefinition.createObject() 
     imagesTmp[n].translationX = getX(n); 
     imagesTmp[n].translationY = getY(n); 
     drawContainer.add(imagesTmp[n]); 
    } 
    images = imagesTmp; 
    images[3].translationX = 10; //as example, this works! 
} 

事實證明圖像保持參照圖像

相關問題