1

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++を使いたくありません。

4

1 に答える 1

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

結局のところ、画像は画像への参照を保持します

于 2014-01-25T21:02:04.067 に答える