Places List (QML) | Qt Location 5.4

- Qt 5.4
- Qt Location
- Places List (QML)
- Qt 5.4.2 Reference Documentation

# Places List (QML)

To write a QML application that will show places in a list, we start by making the following import declarations.

    import QtQuick 2.0
    import QtPositioning 5.2
    import QtLocation 5.3

Instantiate a Plugin instance. The Plugin is effectively the backend from where places are sourced from. Because the `nokia` plugin has been specified, some mandatory parameters need to be filled in, see the Nokia Plugin documentation for details:

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

Next we instantiate a PlaceSearchModel which we can use to specify search parameters and perform a places search operation. For illustrative purposes, update() is invoked once construction of the model is complete. Typically update() would be invoked in response to a user action such as a button click.

    PlaceSearchModel {
        id: searchModel

        plugin: myPlugin

        searchTerm: "pizza"
        searchArea: QtPositioning.circle(startCoordinate);

        Component.onCompleted: update()

    }

Finally we instantiate a ListView to show the search results found by the model. An inline delegate has been used and we have assumed that every search result is of type `PlaceSearchesult`. Consequently it is assumed that we always have access to the place role, other search result types may not have a place role.

    ListView {
        anchors.fill: parent
        model: searchModel
        delegate: Component {
            Column {
                Text { text: title }
                Text { text: place.location.address.text }
            }
        }
        spacing: 10
    }

Files:

- places_list/places_list.qml
- places_list/main.cpp
- places_list/places_list.pro