Sur cette page

Interfaces entre le code C++ et QML dans Qt Positioning

Aperçu

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 transmettre les types de valeurs suivants de QML vers C++, et inversement :

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 sert à établir une interface entre le code C++ et le code QML. Il faut d'abord obtenir un pointeur vers un objet Address depuis le code C++, puis utiliser les fonctions property() et setProperty() pour récupérer et définir la propriété address.

Le bout de code suivant récupère l’objet ` QGeoAddress ` depuis le C++ :

 QGeoAddress geoAddress = qmlObject->property("address").value<QGeoAddress>();

Le code suivant définit la propriété address de l’objet QML en fonction d’un objet QGeoAddress provenant de C++ :

qmlObject->setProperty("address", QVariant::fromValue(geoAddress));

Location - QGeoLocation

La propriété ` Location.location ` sert à établir une interface entre le code C++ et le code QML. Il faut d’abord obtenir depuis le C++ un pointeur vers un objet ` Location `, puis utiliser les fonctions ` property()` et ` setProperty()` pour récupérer et définir la propriété ` location `.

Le bout de code suivant récupère l’objet ` QGeoLocation ` depuis le C++ :

QGeoLocation geoLocation = qmlObject->property("location").value<QGeoLocation>();

Le code suivant définit la propriété location de l’objet QML en fonction 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.