В книге "Qt 4 на примерах" рассмотрена разработка приложений на языке C++ для Windows и/или Linux с применением библиотеки Qt 4, которая широко используется как в мире коммерческого, так и свободного программного обеспечения. Приведены примеры решения многих задач, с которыми сталкивается разработчик при проектировании пользовательского интерфейса, сетевых взаимодействий, применении средств мультимедиа, языков XML и XQuery, многопоточном программировании. Особое внимание уделено созданию приложений баз данных и программ, которые могут расширяться конечным пользователем с помощью встроенных языков Qt Script или Python. Компакт-диск содержит исходные тексты описанных в книге примеров и библиотеку Qt 4.4 для Windows, Linux и Mac OS X. 
Содержание
Оглавление Введение 9 
Коммерческие и свободные версии Qt 4 12 
Благодарности 13 
Глава 1. Инструменты программиста 15 
1.1. Microsoft Visual C++ 16 
1.2. Intel C++ 17 
1.3. Borland C++ 17 
1.4. GNU C++ и MinGW 17 
1.5. QDevelop 17 
1.6. Рекомендации по выбору компилятора 19 
Глава 2. "Обычный" C++ 21 
2.1. Консольная программа на языке C++ 21 
2.2. Компиляция и выполнение программы с помощью командной строки Microsoft Visual C++ 23 
2.3. Компиляция и выполнение программы с помощью командной строки в системах Linux/FreeBSD/Solaris/HP-UX/Mac OS X 25 
2.4. Создание консольного приложения в Microsoft Visual Studio 2005 26 
2.5. Шаблоны в C++ 30 
Глава 3. Основы Qt 4 35 
3.1. Обзор классов библиотеки Qt 4 35 
3.2. Компиляция библиотеки Qt 40 
3.2.1. Компиляция в системе Microsoft Windows 41 
3.2.2. Компиляция в системе Linux/FreeBSD 43 
3.3. Простейшее приложение Qt 4 44 
3.4. Компиляция приложений Qt 4 из командной строки 45 
3.5. Компиляция приложений Qt 4 с помощью интегрированной среды Microsoft Visual Studio 47 
3.6. Использование кириллицы 48 
3.7. Консольное приложение Qt 52 
3.8. Создание новых классов 54 
3.9. Правила именования объектов в библиотеке Qt 57 
Глава 4. Текстовые надписи 59 
4.1. Форматированный текст 60 
4.2. Ссылки Интернета 61 
4.3. Редактируемая надпись 62 
4.4. Надписи с рисунками 63 
4.5. Несколько элементов на одной форме 64 
4.6. Диалог с текстовым сообщением 66 
4.7. Форматирование строк 67 
4.8. Ввод текста с клавиатуры 68 
Глава 5. Обработка событий 71 
5.1. Сигналы и слоты 71 
5.2. События 79 
5.3. Обработка событий с помощью виртуальных методов 80 
5.4. Фильтры для событий 84 
5.5. Сопоставление сигналов 88 
Глава 6. Кнопки и диалоги 91 
6.1. Кнопки нажатия QPushButton 91 
6.2. Программная эмуляция нажатия кнопок 97 
6.3. Группы переключателей 99 
6.4. Группа кнопок QButtonGroup 101 
6.5. Кнопки диалогов 103 
6.6. Модальные диалоги 104 
6.7. Стандартные диалоги 108 
6.8. Окно внутри диалога 110 
Глава 7. Меню, панели инструментов и строка состояния 113 
7.1. Строка состояния 113 
7.2. Действия 115 
7.3. Меню 115 
7.4. Виджеты в строке состояния 116 
7.5. Примеры приложений 118 
Глава 8. Размещение элементов на форме 127 
8.1. "Ручное" размещение элементов формы 127 
8.2. Менеджеры размещения 134 
Глава 9. Автоматизация создания диалогов, отладка программ и предоставление помощи 139 
9.1. Создание диалога с помощью Qt Designer 139 
9.2. Использование диалога, созданного в Qt Designer 145 
9.3. Отладка программ 150 
9.4. Система помощи 153 
Глава 10. Работа с данными 159 
10.1. Числа и строки 159 
10.2. Массивы и списки 160 
10.3. Контейнеры и итераторы 163 
10.4. Класс QObject 165 
10.5. Неявное совместное использование данных 167 
10.6. Явное совместное использование данных 170 
Глава 11. Каталоги, файлы, потоки ввода-вывода, ресурсы 173 
11.1. Чтение и запись текстового файла 173 
11.2. Работа с двоичными данными 176 
11.3. Каталоги и свойства файлов 180 
11.4. Временные файлы 180 
11.5. Каталог приложения 181 
11.6. Копирование файлов 181 
11.7. Хранение ресурсов в программе 183 
11.8. Хранение скомпилированных ресурсов в отдельном двоичном файле 184 
11.9. Значок приложения 185 
11.10. Диалог выбора файла 185 
11.11. Сжатие информации 186 
Глава 12. Приложения SDI и MDI 189 
12.1. Пример приложения SDI: текстовый редактор 189 
12.2. Открытие и сохранение файлов 194 
12.3. Команды редактирования 201 
12.4. Пример приложения MDI 203 
12.5. Плавающие окна 211 
12.6. Хранение настроек приложения 214 
12.7. Разное 219 
Глава 13. Графика и печать 221 
13.1. Класс QPainter 222 
13.2. Пользовательский стиль линий 227 
13.3. Форматированный текст и HTML 228 
13.4. Отображение форматированного текста 232 
13.5. Часы со стрелками 232 
13.6. Класс QPixmap 237 
13.7. Работа с принтером 239 
13.8. Печать на нескольких страницах 250 
13.9. Предварительный просмотр перед печатью 252 
13.10. Графические сцены 254 
Глава 14. Списки, таблицы и деревья 263 
14.1. Список QListWidget 263 
14.2. Реакция на действия пользователя 264 
14.3. Редактирование элементов списка 267 
14.4. Таблица QTableWidget 267 
14.5. Дерево QTreeWidget 278 
Глава 15. Технология "Модель - представление" 287 
15.1. Табличная модель и ее представления 287 
15.2. Выравнивание элементов списка 299 
15.3. Галочки для элементов таблицы 300 
15.4. Дерево каталогов и файлов 303 
15.5. Иерархическая модель 306 
15.6. Дерево групп и таблица элементов 313 
15.7. Разное 323 
Глава 16. Процессы, потоки, синхронизация 333 
16.1. Процессы 333 
16.2. Потоки 335 
16.3. Реентерабельность и потокобезопасность 336 
16.4. Методы синхронизации процессов и потоков 338 
16.4.1. Мьютексы 338 
16.4.2. Читатели и писатели 341 
16.4.3. Семафоры 341 
16.4.4. Условие ожидания 342 
16.5. Производитель - потребитель 343 
16.6. Мультипликация 346 
16.7. QtConcurrent: высокоуровневое API для параллельного программирования 350 
Глава 17. Работа с базами данных 359 
17.1. Компиляция SQL-драйверов 359 
17.2. Подключение к базе данных и выполнение SQL-запросов 362 
17.3. Работа с таблицами баз данных 374 
Глава 18. Модели таблиц баз данных и их представления 381 
18.1. Разработка модели и представления таблицы БД 381 
18.2. Делегаты для ячеек таблицы 389 
18.3. Связывание элементов управления форм с моделью данных 399 
18.4. Консоль запросов 408 
18.5. Связывание таблиц 420 
18.6. Выполнение запросов в отдельных потоках 422 
Глава 19. Средства XML 431 
19.1. DOM API 432 
19.2. SAX API 437 
19.3. Класс QStreamReader 440 
19.4. Модуль QtXmlPatterns 443 
Глава 20. Локальные сети и Интернет 447 
20.1. Эхо-сервер в блокирующем режиме 449 
20.2. Клиент для эхо-сервера 453 
20.3. Асинхронный однопоточный эхо-сервер 456 
20.4. Многопоточный эхо-сервер 460 
20.5. Работа с протоколом FTP 466 
20.6. Отправка электронной почты по протоколу SMTP 467 
20.7. Использование модуля WebKit: простой Web-браузер 475 
Глава 21. Использование модуля QtScript 479 
Глава 22. Технология COM. Интеграция с MS Office. Средства мультимедиа 495 
22.1. Импорт и экспорт таблиц MS Excel 495 
22.2. Работа со звуком 501 
22.3. Анимация 502 
22.4. Библиотека Phonon 503 
22.5. Воспроизведение видео с помощью Media Player 507 
Глава 23. Внешний вид элементов управления 509 
23.1. Палитры 509 
23.2. Стили 511 
Глава 24. Интернационализация приложений 519 
24.1. Подготовка исходного текста программы 519 
24.2. Подготовка файлов описания проекта и ресурсов 522 
24.3. Утилиты lupdate и lrelease 526 
24.4. Программа Qt Linguist 526 
24.5. Переключение языка во время выполнения программы 528 
Глава 25. Использование интерпретатора Python 531 
25.1. Зачем это нужно 531 
25.2. Основные сведения о языке Python 531 
25.3. Встраивание интерпретатора Python в приложения, написанные на C/C++ 534 
25.4. Библиотека PythonQt 545 
25.5. Библиотека PyQt4 547 
Глава 26. Создание библиотек и плагинов для Qt Designer 549 
26.1. Создание библиотеки 549 
26.2. Статическая компоновка 551 
26.3. Динамическая загрузка 553 
26.4. Расширение библиотеки виджетов Qt Designer 555 
Глава 27. Сравнение библиотеки Qt с другими средствами межплатформенной разработки 565 
27.1. Qt и Java 565 
27.2. Qt и .NET 566 
27.3. Qt и wxWidgets 567 
Глава 28. Разное 573 
28.1. Борьба с "зависанием" интерфейса пользователя 573 
28.2. Перемещение виджетов с помощью мыши 573 
28.3. Заголовок окна 575 
28.4. Область прокрутки 582 
28.5. Сведения о текущей платформе 582 
28.6. Бегущая строка 585 
28.7. Работа с переменными окружения 587 
28.8. Типы MIME 588 
28.9. Буфер обмена 589 
28.10. Перетаскивание файлов в окно текстового редактора 591 
Заключение 595 
Приложение. Описание содержимого компакт-диска 597 
Список литературы 603