blackberry-10blackberry-cascadesobjectname

How to call ImageView by objectName in QML


I am dynamically creating images in my QML. This is the code I am using:

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

Image creating works well, except I don't know how to call those images afterdawrds. I can't set them an ID, and I don't know if setting objectName like that works.

I don't get any errors, and if this work, how can I call "image3" from QML to move it? I don't want to use c++.


Solution

  • Found out a solution on my own. First I add this to have global access

    property list<ImageView> images
    

    And then I create images in array and copy them over

    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!
    }
    

    As it turns out images keeps reference to the image