0
私はQtのQt C++コードからQMLコードに二重を渡すには?
int main(int argc, char *argv[]) {
QGuiApplication app(argc,argv);
QQuickView view;
QUrl q(QStringLiteral("QML:///places_map.qml"));
view.setSource(QUrl(QStringLiteral("qrc:///places_map.qml")));
//I've tried this to init qml properties
QObject *object = view.rootObject();
object->setProperty("latitude", 48.4656371);
object->setProperty("longitude", 31.04900455);
QQuickItem *item = view.rootObject();
item->setProperty("device_latitude", 48.4656371);
item->setProperty("device_longitude", 35.04900455);
}
にこのコードを持っており、私のQMLファイル:QMLコードのプロパティで
import QtQuick 2.0
import QtPositioning 5.5
import QtLocation 5.6
Rectangle {
width: 720
height: 480
property double latitude: 0
property double longitude: 0
property double device_latitude: 0 //48.4656371
property double device_longitude: 0 //35.54900455
property variant location: QtPositioning.coordinate(latitude, longitude)
property variant deviceLocation: QtPositioning.coordinate(device_latitude, device_longitude)
Plugin {
id: myPlugin
name: "osm"
}
PlaceSearchModel {
id: searchModel
plugin: myPlugin
searchTerm: "Pizza"
searchArea: QtPositioning.circle(deviceLocation)
Component.onCompleted: update()
}
Map {
id: map
anchors.fill: parent
plugin: myPlugin;
center: location
zoomLevel: 13
MapItemView {
model: searchModel
delegate: MapQuickItem {
coordinate: deviceLocation //QtPositioning.coordinate(device_latitude, device_longitude)
anchorPoint.x: image.width * 0.5
anchorPoint.y: image.height
sourceItem: Column {
Image { id: image; source: "marker.png" }
Text { text: title; font.bold: true }
}
}
}
}
}
ダブル緯度と経度は、地図 上のビューを設定するが、マップがplace with latitude = 0 and longtitude = 0
た場合を示しています私はqmlコードのすべての正しい座標を設定します。 マップに私の都市が表示されるように、C++コードからこの値をどのように初期化できますか?
は 緯度と経度が機能するようになりました、あなたの答えに感謝よく前のC++コード 私はトリ他のデータ(device_latituteとdevice_longtitude)のコードを編集しましたが、うまくいきませんでした。更新されたコードを見てください。 – Dmitry
#includesがありませんか?私の更新された答えを見てください。 –