ContactDetails QML Type (Uncreatable) | Qt Location | Qt 6.12.0
Description: The ContactDetails type holds contact details for a Place.
Keywords: qmltype

- Qt 6.12
- Qt Location
- QML Types
- ContactDetails
- Qt 6.12.0 Reference Documentation

# ContactDetails QML Type (Uncreatable)

The ContactDetails type holds contact details for a Place. More...

Import Statement: | `import QtLocation 6.12`
Since: | QtLocation 5.5

Note: This is an uncreatable type. It cannot be instantiated in QML.

- List of all members, including inherited members

## Methods

- variant keys()

## Detailed Description

The ContactDetails type is a map of contactDetail objects. To access contact details in the map use the keys() method to get the list of keys stored in the map and then use the `[]` operator to access the contactDetail items.

The following keys are defined in the API. Plugin implementations are free to define additional keys.

- phone
- fax
- email
- website

ContactDetails instances are only ever used in the context of Places. It is not possible to create a ContactDetails instance directly or re-assign ContactDetails instances to Places. Modification of ContactDetails can only be accomplished via Javascript.

## Examples

The following example shows how to access all contact details and print them to the console:

     import QtPositioning
     import QtLocation

     function printContactDetails(contactDetails) {
         var keys = contactDetails.keys();
         for (var i = 0; i < keys.length; ++i) {
             var contactList = contactDetails[keys[i]];
             for (var j = 0; j < contactList.length; ++j) {
                 console.log(contactList[j].label + ": " + contactList[j].value);
             }
         }
     }

The returned list of contact details is an object list and so can be used directly as a data model. For example, the following demonstrates how to display a list of contact phone numbers in a list view:

     import QtQuick
     import QtPositioning
     import QtLocation

     ListView {
         model: place.contactDetails.phone;
         delegate: Text { text: modelData.label + ": " + modelData.value }
     }

The following example demonstrates how to assign a single phone number to a place in JavaScript:

     function writeSingle() {
         var phoneNumber = Qt.createQmlObject('import QtLocation; ContactDetail {}', place);
         phoneNumber.label = "Phone";
         phoneNumber.value = "555-5555"
         place.contactDetails.phone = phoneNumber;
     }

The following demonstrates how to assign multiple phone numbers to a place in JavaScript:

     function writeMultiple() {
         var bob = Qt.createQmlObject('import QtLocation; ContactDetail {}', place);
         bob.label = "Bob";
         bob.value = "555-5555"

         var alice = Qt.createQmlObject('import QtLocation; ContactDetail {}', place);
         alice.label = "Alice";
         alice.value = "555-8745"

         var numbers = new Array();
         numbers.push(bob);
         numbers.push(alice);

         place.contactDetails.phone = numbers;
     }

## Method Documentation

### variant keys()

Returns an array of contact detail keys currently stored in the map.