Interfaces entre C++ et QML Code en Qt Positioning
Vue d'ensemble
Qt Positioning utilise deux méthodes pour simplifier l'échange de données de position entre le code C++ et le code QML.
Mappage direct
Qt Positioning vous permet de passer les types de valeurs suivants de QML à C++, et vice versa :
| Classe C++ | Type de valeur QML |
|---|---|
| QGeoCircle | geoCircle |
| QGeoCoordinate | geoCoordinate |
| QGeoPath | geoPath |
| QGeoPolygon | geoPolygon |
| QGeoRectangle | geoRectangle |
| QGeoSatelliteInfo | geoSatelliteInfo |
| QGeoShape | geoShape |
Intégration basée sur QVariant
Cette section fournit des informations sur la manière d'intégrer QGeoAddress et QGeoLocation.
Adresse - QGeoAddress
La propriété Address.address est utilisée pour fournir une interface entre le code C++ et le code QML. Tout d'abord, un pointeur sur un objet Address doit être obtenu à partir de C++, puis les fonctions property() et setProperty() doivent être utilisées pour obtenir et définir la propriété address.
Le morceau de code suivant obtient l'objet QGeoAddress à partir de C++ :
QGeoAddress geoAddress = qmlObject->property("address").value<QGeoAddress>();
Le morceau de code suivant définit la propriété d'adresse de l'objet QML sur la base d'un objet QGeoAddress provenant de C++ :
qmlObject->setProperty("address", QVariant::fromValue(geoAddress));
Emplacement - QGeoLocation
La propriété Location.location est utilisée pour fournir une interface entre le code C++ et le code QML. Il faut d'abord obtenir un pointeur sur un objet Location à partir de C++, puis utiliser les fonctions property() et setProperty() pour obtenir et définir la propriété location.
Le morceau de code suivant obtient l'objet QGeoLocation à partir de C++ :
QGeoLocation geoLocation = qmlObject->property("location").value<QGeoLocation>();
Le morceau de code suivant définit la propriété location de l'objet QML sur la base d'un objet QGeoLocation provenant 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.