如何在qt中获取联系人列表

如何在qt中获取联系人列表,qt,Qt,我使用此代码,只获取一个人的详细联系方式 contactManager = new QContactManager(); QList<QContact> contacts = contactManager->contacts(); contacts.detail(QContactPhoneNumber::DefinitionName).value(QContactPhoneNumber::FieldNumber); QContact a = contactManager-&g

我使用此代码,只获取一个人的详细联系方式

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: person2 Number: +44124156
Name: person3 Number: +212113
..电话中的联系人列表
感谢您提供的任何帮助……

如果您想打印所有帮助,您应该遍历
QContactManager::contacts()
返回的
QList

这应该让你开始(我会为你准备):

//联系人包含ID:s的列表
QList contacts=contactManager->contacts();
//现在迭代
QList::迭代器it;
for(it=contacts.begin();it!=contacts.end();+it)
{
QContact contact=contactManager->contact(*it);
//并打印联系人信息。。。
UserId name=contact.displayLabel();
PhoneNumber=contact.number();

qDebug()帮了我很多……谢谢……)

只是一个修改,它是:

QList<QContactLocalId> contacts = contactManager->contactsIds();
QList contacts=contactManager->contactsIds();
不是

QList contacts=contactManager->contacts();

要获取iOS和Android的联系人列表,您也可以使用V-Play SDK。有一种方法是这样的:

import VPlayApps 1.0

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

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

我真的不知道你想要什么以及它与你已经拥有的有什么不同。你能澄清一下吗?你不使用
foreach(const QContact contact,contacts){…}有什么具体原因吗
?这只是一个小的补充,不是一个全面的答案-因此它应该是在已接受的答案下的一个注释。感谢有用的答案的通常方式是向上投票(请参阅)。
QList<QContactLocalId> contacts = contactManager->contactsIds();
QList<QContactLocalId> contacts = contactManager->contacts();
import VPlayApps 1.0

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

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