Введение в разработку приложений на платформе Atom/MeeGo для нетбуков и планшетников. Граничин О.Н - 110 стр.

UptoLike

110
много классов, наиболее важными для понимания являются:
QContact, QContactManager, QContactDetailRangeFilter, QMessage,
QMessageService, QMessageManager.
Спроектируем нашу программу следующим образому
нее будет поле ввода сообщения для рассылки, два поля ввода
возраста (минимальный и максимальный) для выборки, окно
для отображения выбранного списка контактов и две кнопки
сделать выборку и разослать сообщение. Функциональность
будет реализована в классе SenderWidget, наследнике QWidget.
Опишем в нем два слота select() и send()они будут
вызываться при нажатии соответствующих кнопок. Виджеты
для ввода данных сделаем полями класса, чтобы иметь к ним
доступ из слотов. Также добавим поле класса manager, в
котором будем хранить указатель на используемый менеджер
контактов.
Для работы с контактами опишем небольшой API.
QList<QContact> selectContacts(int from, int till);
Функция получает от manager список контактов в заданном
интервале возрастовнапример, от 18 до 23 лет.
void sendContacts(QString message, QList<QContact>
contacts);
Функция отправляет сообщение message каждому контакту в
списке.
void showContacts(QList<QContact> contacts);
Функция отображает список контактов в окне вывода.
QContact makeContact(QString firstName, QString
lastName, QString phone, QDate birth);
Вспомогательная функция, которая создает новый контакт
на основе переданных ей параметров.
Как нетрудно видеть, используя это API, задача решается
тривиально, осталось только его реализовать. Начать можно с
выбора менеджера, в котором будут храниться контакты.
Список идентификаторов всех менеджеров можно получить
вызвав метод QContactManager::availableManagers(). Из