Auf dieser Seite

Ortsliste (QML)

Das Beispiel „Ortsliste“ veranschaulicht, wie man mithilfe eines „ ListView “ nach Orten sucht und eine Liste dieser Orte anzeigt.

Nummerierte Liste von Pizzerien mit Adressen

Ausführen des Beispiels

Sie können das Beispiel wie folgt ausführen:

Das Beispiel „ Places List “ veranschaulicht, wie man nach einer Liste von Orten in einem bestimmten Gebiet sucht und das Ergebnis mithilfe eines „ ListView “ anzeigt. In diesem speziellen Fall wird eine Suche nach Orten durchgeführt, die mit dem Begriff „ food “ in Verbindung stehen.

Um eine QML-Anwendung zu erstellen, die Orte in einer Liste anzeigt, beginnen wir mit den folgenden Import-Deklarationen.

import QtQuick
import QtPositioning
import QtLocation

Instanziieren Sie eine Instanz von „ Plugin “. „ Plugin “ ist im Grunde das Backend, aus dem die Orte bezogen werden. Je nach Art des Plugins müssen möglicherweise einige obligatorische Parameter angegeben werden. Bei „ PluginParameter “ handelt es sich höchstwahrscheinlich um eine Art Service-Zugriffstoken, das im jeweiligen Service-Plugin dokumentiert ist. In diesem Codeausschnitt wird das Plugin „ osm “ verwendet, das keine weiteren Parameter erfordert:

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

Als Nächstes instanziieren wir ein ` PlaceSearchModel `, mit dem wir Suchparameter festlegen und eine Suche nach Orten durchführen können. Zur Veranschaulichung wird ` update()` aufgerufen, sobald die Erstellung des Modells abgeschlossen ist. In der Regel würde ` update()` als Reaktion auf eine Benutzeraktion, wie beispielsweise einen Klick auf eine Schaltfläche, aufgerufen werden.

PlaceSearchModel {
    id: searchModel

    plugin: myPlugin

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

    Component.onCompleted: update()

}

Abschließend instanziieren wir ein ` ListView `, um die vom Modell gefundenen Suchergebnisse anzuzeigen. Es wurde ein Inline-Delegat verwendet, und wir sind davon ausgegangen, dass jedes Suchergebnis vom Typ ` type ` ` PlaceSearchesult` ist. Folglich wird angenommen, dass wir immer Zugriff auf die `place `- role haben; andere Suchergebnistypen verfügen möglicherweise nicht über eine `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 }
            }
        }
    }
}

Beispielprojekt @ 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.