我在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 ++。
答案 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!
}
事实证明,图像保持对图像的引用