Schnittstellen zwischen C++ und QML Code in Qt Positioning
Übersicht
Qt Positioning verwendet zwei Methoden, um den Austausch von Positionsdaten zwischen C++- und QML-Code zu vereinfachen.
Direktes Mapping
Qt Positioning ermöglicht die Übergabe der folgenden Wertetypen von QML an C++ und umgekehrt:
| C++ Klasse | QML-Wert-Typ |
|---|---|
| QGeoCircle | geoCircle |
| QGeoCoordinate | geoCoordinate |
| QGeoPath | geoPath |
| QGeoPolygon | geoPolygon |
| QGeoRectangle | geoRectangle |
| QGeoSatelliteInfo | geoSatelliteInfo |
| QGeoShape | geoShape |
QVariant-basierte Integration
Dieser Abschnitt enthält Informationen über die Integration von QGeoAddress und QGeoLocation.
Adresse - QGeoAddress
Die Eigenschaft Address.address wird verwendet, um eine Schnittstelle zwischen C++- und QML-Code zu schaffen. Zunächst muss ein Zeiger auf ein Address Objekt von C++ erhalten werden, dann müssen die Funktionen property() und setProperty() verwendet werden, um die Eigenschaft address zu erhalten und zu setzen.
Das folgende Codestück holt das QGeoAddress Objekt aus C++:
QGeoAddress geoAddress = qmlObject->property("address").value<QGeoAddress>();
Der folgende Code setzt die Adresseigenschaft des QML-Objekts auf der Grundlage eines QGeoAddress -Objekts aus C++:
qmlObject->setProperty("address", QVariant::fromValue(geoAddress));
Standort - QGeoLocation
Die Eigenschaft Location.location wird verwendet, um eine Schnittstelle zwischen C++- und QML-Code zu schaffen. Zuerst muss ein Zeiger auf ein Location Objekt von C++ erhalten werden, dann müssen die Funktionen property() und setProperty() verwendet werden, um die Eigenschaft location zu erhalten und zu setzen.
Das folgende Codestück holt das QGeoLocation Objekt aus C++:
QGeoLocation geoLocation = qmlObject->property("location").value<QGeoLocation>();
Der folgende Code setzt die Eigenschaft location des QML-Objekts auf der Grundlage eines QGeoLocation -Objekts aus C++:
qmlObject->setProperty("location", QVariant::fromValue(geoLocation));
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.