2010-07-15 57 views
5

我用这个代码,只有一人获得联系方式,联系人列表....如何获得QT

contactManager = new QContactManager(); 
QList<QContact> contacts = contactManager->contacts(); 
contacts.detail(QContactPhoneNumber::DefinitionName).value(QContactPhoneNumber::FieldNumber); 

QContact a = contactManager->contact(contacts.count()); 
QContactPhoneNumber no = a.detail<QContactPhoneNumber>(); 
qDebug() << "Name:" << a.displayLabel() << "Number:" << " " << no.number() ; 
UserId = a.displayLabel(); 
PhoneNumber = no.number(); 

输出:

Name: andrew Number: +7811341255 

,但我想这样的接触列表在电话 的无接触的

Name: andrew Number: +7811341255 
Name: person2 Number: +44124156 
Name: person3 Number: +212113 

....列表中的任何帮助表示赞赏....

+1

我真的不能告诉你想要什么,你已经拥有了如何从不同。你能澄清一点吗? – extraneon 2010-07-15 12:20:52

回答

2

如果要打印所有这些文件,您应该遍历由QContactManager::contacts()返回的QList

这应该让你开始(我就掀起它为你):

// Contacts contains a list of ID:s 
QList<QContactLocalId> contacts = contactManager->contacts(); 

// Now iterate 
QList<QContactLocalId>::iterator it; 
for (it = contacts.begin(); it != contacts.end(); ++it) 
{ 
    QContact contact = contactManager->contact(*it); 
    // And print contact information... 
    UserId name = contact.displayLabel(); 
    PhoneNumber number = contact.number(); 
    qDebug() << "Name: " << name 
      << " Number: " << number << " "; 
} 

http://doc.qt.nokia.com/qtmobility-1.0-tp/qcontactmanager.html#contacts

http://doc.qt.nokia.com/4.5/qlist.html

http://doc.qt.nokia.com/4.5/qlist-iterator.html

http://www.cppreference.com/wiki/stl/iterators

+0

为什么不使用'foreach(const QContact联系人,联系人){...}'是否有特定的原因? – mbx 2011-09-05 08:25:31

1

帮我很多......谢谢你...... :)

只是一个修改是:

QList<QContactLocalId> contacts = contactManager->contacts(); 
+1

这只是一个小的补充,并不是一个全面的答案 - 因此它应该是在接受的答案下的评论。感谢有用答案的常用方法是提升它(参见[Meta](http://meta.stackexchange.com/q/34464/159753))。 – mbx 2011-09-05 08:33:46

0

要获得的iOS &的联系人列表Android,您也可以为此使用V-Play SDK。有方法nativeUtils.getContacts()它是这样工作的:

import VPlayApps 1.0 

App { 
    AppListView { 
    anchors.fill: parent 
    model: nativeUtils.getContacts() 

    delegate: SimpleRow { 
     text: modelData.name 
     detailText: modelData.phoneNumber 
    } 
    } 
}