如何在QML中通过objectName调用ImageView

时间:2014-01-25 19:33:34

标签: blackberry-10 blackberry-cascades objectname

我在QML中动态创建图像。这是我正在使用的代码:

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 ++。

1 个答案:

答案 0 :(得分: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!
}

事实证明,图像保持对图像的引用