2010-07-15 38 views
5

tôi sử dụng đoạn mã này và nhận được thông tin liên lạc của chỉ có một người ....làm thế nào để có được danh sách liên lạc trong 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(); 

đầu ra:

Name: andrew Number: +7811341255 

nhưng tôi muốn danh sách liên lạc như thế này

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

.... danh sách không tiếp xúc trong điện thoại bất kỳ sự giúp đỡ đánh giá cao ....

+1

Tôi thực sự không thể biết bạn muốn gì và khác với những gì bạn đã có. Bạn có thể làm rõ rằng một chút? – extraneon

Trả lời

2

Nếu bạn muốn in tất cả chúng, bạn nên lặp lại trên QList được trả lại bởi QContactManager::contacts().

này sẽ giúp bạn bắt đầu (Tôi sẽ chỉ whip nó lên cho bạn):

// 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

Có lý do cụ thể nào khiến bạn không sử dụng 'foreach (liên hệ const QContact, liên hệ) {...}'? – mbx

1

Đã giúp tôi rất nhiều ...... Cảm ơn ...... :)

chỉ là một thay đổi đó là:

không

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

đây chỉ là một bổ sung nhỏ, không phải là một câu trả lời toàn diện - vì vậy nó phải là một bình luận theo câu trả lời được chấp nhận. Cách thông thường để cảm ơn câu trả lời hữu ích là upvoting nó (xem [Meta] (http://meta.stackexchange.com/q/34464/159753)). – mbx

0

Để có được một danh sách liên lạc của iOS & Android, bạn cũng có thể sử dụng SDK V-Play cho việc này. Có phương pháp nativeUtils.getContacts() hoạt động như sau:

import VPlayApps 1.0 

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

    delegate: SimpleRow { 
     text: modelData.name 
     detailText: modelData.phoneNumber 
    } 
    } 
} 
Các vấn đề liên quan