Sur cette page

Liste des lieux (QML)

L'exemple « Liste des lieux » montre comment rechercher et afficher une liste de lieux à l'aide d'un ListView.

Liste numérotée des pizzerias avec leurs adresses

Exécution de l'exemple

Vous pouvez exécuter l'exemple à partir de :

L’exemple « Places List » montre comment rechercher une liste de lieux dans une zone donnée et affiche le résultat à l’aide d’un ListView. Dans ce cas précis, une recherche est effectuée pour trouver les lieux associés au terme « food ».

Pour écrire une application QML qui affichera des lieux sous forme de liste, nous commençons par définir les déclarations d’importation suivantes.

import QtQuick
import QtPositioning
import QtLocation

Instancier une instance de ` Plugin `. Le ` Plugin ` correspond en fait au backend à partir duquel les lieux sont récupérés. Selon le type de plugin, certains paramètres obligatoires peuvent devoir être renseignés. Les ` PluginParameter ` sont le plus souvent des jetons d’accès au service, dont la documentation figure dans le plugin de service. Dans cet extrait de code, le plugin ` osm ` est utilisé ; il ne nécessite aucun paramètre supplémentaire :

Plugin {
    id: myPlugin
    name: "osm"
    //specify plugin parameters as necessary
    //PluginParameter {...}
    //PluginParameter {...}
    //...
}

Ensuite, nous instancions un ` PlaceSearchModel `, que nous pouvons utiliser pour spécifier des paramètres de recherche et effectuer une opération de recherche de lieux. À titre d’illustration, la méthode ` update()` est appelée une fois la construction du modèle terminée. En général, la méthode ` update()` serait appelée en réponse à une action de l’utilisateur, telle qu’un clic sur un bouton.

PlaceSearchModel {
    id: searchModel

    plugin: myPlugin

    searchTerm: "food"
    searchArea: QtPositioning.circle(startCoordinate, 5000 /* 5 km radius */);

    Component.onCompleted: update()

}

Enfin, nous instancions un ` ListView ` pour afficher les résultats de recherche trouvés par le modèle. Un délégué en ligne a été utilisé et nous avons supposé que chaque résultat de recherche est de type ` type ` ou ` PlaceSearchesult`. Par conséquent, nous partons du principe que nous avons toujours accès au ` place ` ` role` ; d’autres types de résultats de recherche peuvent ne pas disposer d’un `place ` ` role`.

ListView {
    anchors.fill: parent
    model: searchModel
    delegate: Component {
        Row {
            spacing: 5
            Marker { height: parent.height }
            Column {
                Text { text: title; font.bold: true }
                Text { text: place.location.address.text }
            }
        }
    }
}

Exemple de projet @ code.qt.io

© 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.