2
私は、QtMobility MapPolyline
のインスタンスとQMLのCoordinate
のいくつかを、Javascript関数からプログラマチックに作成しようとしています。QML動的コンポーネントの作成
Javascript関数から新しいインスタンスを作成する唯一の方法は、Qt.createComponent
とQt.createQmlObject
です。しかし、私はcreateComponent
(私はいつもファイルが存在しないエラーを取得する)を呼び出す方法を見つけることができません。そして、私はQt.createQmlObject
を避けたいと思います。それは本当に悪い習慣のようです。
これを達成するためのクリーンな方法はありますか?
Component {
id: polyGenerator
MapPolyline {}
}
function addPoly() {
//This next line works, but crashes when trying to add positions
//createPoly(polyGenerator);
var component = Qt.createComponent("Rectangle");
console.log(component.status + " " + Component.Null);
if (component.status == Component.Ready) {
createPoly(component);
} else if (component.status == Component.Error) {
console.log("Error: " + component.errorString());
} else {
component.statusChanged.connect(function() {
if (component.status == Component.Error) {
console.log("Error: " + component.errorString());
return;
}
createPoly(component);
});
}
}
function createPoly(component) {
var poly = component.createObject(map);
poly.border.color = "red";
poly.border.width = 4;
// I get a crash here, my guess is that I need proper Coordinate objects
poly.addCoordinate({latitude: -34.60553, longitude: -58.38088});
poly.addCoordinate({latitude: -34.60720, longitude: -58.38081});
poly.addCoordinate({latitude: 34.60720, longitude: -58.38081});
poly.addCoordinate({latitude: -34.60597, longitude: -58.37930});
map.addMapObject(poly);
}
はい、URLが必要です。しかし、私の目的はQtMobilityアイテムをインスタンス化することなので、私はそのURLを知らない。サンプルコードは、それを動作させようとするいくつかの繰り返しの結果であり、Rectangleビットは単なるテストに過ぎませんでした。動作しないとわかっています。 – Juan
これはこれが受け入れる方法だと思われますので、私はその答えを受け入れます。ご回答有難うございます! – Juan