Interfaces entre C++ y QML Código en Qt Positioning
Vista general
Qt Positioning utiliza dos métodos para simplificar el intercambio de datos de posición entre el código C++ y QML.
Asignación directa
Qt Positioning permite pasar los siguientes tipos de valores de QML a C++, y viceversa:
| Clase C | Tipo de valor QML |
|---|---|
| QGeoCircle | geoCircle |
| QGeoCoordinate | geoCoordinate |
| QGeoPath | geoPath |
| QGeoPolygon | geoPolygon |
| QGeoRectangle | geoRectangle |
| QGeoSatelliteInfo | geoSatelliteInfo |
| QGeoShape | geoShape |
Integración basada en QVariant
Esta sección proporciona información sobre cómo integrar QGeoAddress y QGeoLocation.
Dirección - QGeoAddress
La propiedad Address.address se utiliza para proporcionar una interfaz entre el código C++ y QML. En primer lugar, debe obtenerse de C++ un puntero a un objeto Address y, a continuación, deben utilizarse las funciones property() y setProperty() para obtener y establecer la propiedad address.
El siguiente fragmento de código obtiene el objeto QGeoAddress de C++:
QGeoAddress geoAddress = qmlObject->property("address").value<QGeoAddress>();
El siguiente fragmento de código establece la propiedad address del objeto QML basándose en un objeto QGeoAddress de C++:
qmlObject->setProperty("address", QVariant::fromValue(geoAddress));
Localización - QGeoLocation
La propiedad Location.location se utiliza para proporcionar una interfaz entre el código C++ y QML. En primer lugar, debe obtenerse de C++ un puntero a un objeto Location y, a continuación, deben utilizarse las funciones property() y setProperty() para obtener y establecer la propiedad location.
El siguiente fragmento de código obtiene el objeto QGeoLocation de C++:
QGeoLocation geoLocation = qmlObject->property("location").value<QGeoLocation>();
El siguiente fragmento de código establece la propiedad location del objeto QML basándose en un objeto QGeoLocation de 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.