Please note that as of October 24, 2014, the Nokia Developer Wiki will no longer be accepting user contributions, including new entries, edits and comments, as we begin transitioning to our new home, in the Windows Phone Development Wiki. We plan to move over the majority of the existing entries. Thanks for all your past and future contributions.

Display SIM contacts using QML ContactModel

From Wiki
Jump to: navigation, search

This article shows how to use QML ContactModel Element/Contacts QML Plugin to display SIM contacts on the screen. Note that contacts can also be accessed in C++, using the Qt Contacts API. Note also that the snippet shows use of the API within a Symbian Qt Components framework - the code should work similarly on MeeGo using the MeeGo Qt Quick Components.

Article Metadata
Tested with
Devices(s): Nokia C6-01
Device(s): Symbian
Platform Security
Signing Required: Self-Signed
Capabilities: NetworkServices ReadUserData WriteUserData
Keywords: ContactModel
Created: Devnull (13 Dec 2011)
Last edited: hamishwillee (13 Jun 2012)


Qt SDK version 1.1.4 or later. Create a new Qt Quick application.

Project File (.pro file)

  • Add the Qt Mobility project configuration option in the .pro file as shown below:
CONFIG += mobility
MOBILITY += contacts
  • Here is the project (.pro) file part related to Symbian capabilities:
symbian {
TARGET.CAPABILITY = NetworkServices ReadUserData WriteUserData

QML file

Here is the MainPage.qml:

import QtQuick 1.1
import 1.1
import QtMobility.contacts 1.1
Page {
id: mainPage
Text {
id: title
text: "Contacts"
anchors.horizontalCenter: parent.horizontalCenter
anchors.topMargin: 6
color: platformStyle.colorNormalLight
ListView {
id: mainList
anchors.left: parent.left
anchors.leftMargin: 3
anchors.right: parent.right
anchors.rightMargin: 3 title.bottom
anchors.bottom: parent.bottom
anchors.topMargin: 3
cacheBuffer: 100
clip: true
highlightFollowsCurrentItem: true
snapMode: ListView.SnapOneItem
model: contactModel.contacts
delegate: listDelegate
ContactModel {
id: contactModel
manager: "symbiansim" // "symbian" for other contact manager
autoUpdate :true
SortOrder {
detail: ContactDetail.Name
field: Name.LastName
direction: Qt.AscendingOrder
Component {
id: listDelegate
ListItem {
id: contactItem
subItemIndicator: true
ListItemText {
id: nameItem
mode: contactItem.mode
role: "Title"
text: displayLabel
ScrollDecorator {
flickableItem: mainList
This page was last modified on 13 June 2012, at 10:52.
44 page views in the last 30 days.