Qt4.7+. Практическое программирование на C++ - Книга посвящена разработке приложений для Windows и Linux с использованием библиотеки Qt версий 4.7.x и 4.8. Подробно рассмотрено программирование трехмерной и интерактивной графики, баз данных, многопоточных приложений, создание собственных виджетов, описание принципов работы с XML, а также использование новейших подсистем Qt Declarative и Qt3/D. Дано описание классов Qt применительно к решению конкретных задач. Значительное внимание уделено основным принципам разработки сложных приложений. Рассмотрено применение различных профессиональных инструментов разработчика при работе с библиотекой Qt. В архиве расположены исходные тексты демонстрационных примеров (более 40). Для программистов.
Название: Qt4.7+. Практическое программирование на C++ Автор: Боровский А. Н. Издательство: БХВ-Петербург Год: 2012 Страниц: 492 Формат: PDF Размер: 17,0 МБ ISBN: 978-5-9775-0757-8 Качество: Отличное Серия или Выпуск: Профессиональное программирование Язык: Русский
Содержание:
Введение Что такое Qt? Что вы найдете в этой книге? Для кого предназначена эта книга? Часть I. Начальный этап разработки проектов Глава 1. Краткое введение в Qt 4 Средства разработки для библиотеки Qt library Qt SDK Qt для Microsoft Visual Studio Qt Framework Qt и Eclipse Qt и CMake Общая структура приложений Qt Инструменты Qt Утилита qmake Инструменты интернационализации и локализации Разделение контекстов Склонение существительных, следующих после числительных Qt Designer Компоновка виджетов Визуальное программирование Другие возможности Qt Designer Редактирование партнеров Редактирование порядка перехода между виджетами Qt Designer и таблицы стилей Контейнеры Qt library Сборка приложения Qt 4 под управлением CMake Глава 2. Взаимодействие объектов Qt между собой События Qt Обработка событий, более подробное обсуждение События Qt и многопоточность Удаление объекта после выхода из его метода Фильтрация событий Сигналы и слоты Qt library Исследование сигналов и слотов различных типов Полезные трюки при работе с сигналами и слотами Класс QSignalMapper и программа-калькулятор Глава 3. Работа над серьезными проектами Правило модульности Правило разделения движка и интерфейса Правило разделения движка и политики Правило «ноль-один-бесконечность» Простота переноса на другие платформы Интроспекция Повторное использование кода Применение принципа модульности в Qt Принцип модульности и простое приложение баз данных Интеллектуальные указатели Интеллектуальные указатели - «за и против» Паттерны и анти-паттерны Модульное тестирование Qt и модульное тестирование Глава 4. Инструментарий профессионального разработчика Отладчик GDB Точки останова Обзор данных Стек вызовов Статический анализ кода C++ Инструменты рефакторинга Рефакторинг в Microsoft Visual Studio Рефакторинг в среде Eclipse Рефакторинг «вручную» Рефакторинг и производительность Системы контроля версий Какую систему контроля версий выбрать? Subversion Структура директорий проекта Subversion Создание резервной копии репозитория Клиенты Subversion Программа svn Qt Creator и Subversion Eclipse и Subversion Microsoft Visual Studio и Subversion TortoiseSVN Часть II. Развиваем проекты Глава 5. Qt и многопоточность Основы теории многопоточности Критические области Реентерабельность Потоковая безопасность Потоки без цикла обработки событий Атомарные операции и порядок доступа к памяти Пример с использованием класса ExtThread Локальная память потоков Передача данных межу потоками Класс QSharedMemory Мьютексы и семафоры Кольцевой буфер без блокировок Очередь без блокировок Глава 6. Высокоуровневый интерфейс потоков Классы QRunnable и QThreadPool Что выбрать: QRunnable или ExtThread? Программа поиска файлов по содержимому Быстрый доступ к содержимому файла Быстрый поиск строк Функция QtConcurrent:: run () Глава 7. Возвращаемся к Interview Framework Класс QSqlDatabase Схема работы Interview Framework Утилита sqlite3 Отношения, допускающие значение NULL Класс WeakRelationalTable Класс WeakRelation Класс WeakRelationalDelegate Творческое использование делегатов Создание стиля заголовков таблиц Класс QDataWidgetMapper Классы QDataWidgetMapper и QComboBox Глава 8. Библиотека Qt и ваша видеокарта Графическая система Arthur Класс QGLContext Шейдеры OpenGL в Qt Взгляд в будущее Подсистема Qt/3D Поддержка OpenCL в Qt 4.8 Глава 9. Растровая графика и текст Вывод на экран больших изображений Классы QImage, QPicture и QPixmap Виджет для вывода больших изображений Текст с элементами форматирования Классы QTextDocument и QTextEdit Установка aspell под Windows Подготовка программы Сохранение документа QTextDocument в различных форматах Добавление изображений в документ QTextDocument Новшества в QTextDocument и сопутствующих классах Класс QTextLayout Класс QStaticText Глава 10. Система Graphics View Framework Знакомство с системой Пишем свою игру Формат файла данных Переходим к графике Встраивание виджетов Использование встроенных виджетов в качестве элементов управления Виджет для выбора фрагментов изображений Graphics View Framework и OpenGL Виджет в стиле браузера Opera Создаем графический виджет Часть III. Дополнительный материал Глава 11. Конечные автоматы и анимация Конечные автоматы и минимизация повторяющегося кода Конечные автоматы и анимация Глава 12. Сценарии для программ Qt Передача ссылок на объекты Qt в сценарии Обработка сигналов в сценарии Использование функций приложения в сценарии Создание объектов в сценарии Создание новых типов данных в сценарии Новшества в системе сценариев Qt 4.7 Глава 13. Динамические расширения программ Qt Класс QLibrary Глава 14. Консольные приложения Qt Обработка событий в консольной программе Ввод и вывод данных на консоль Службы и демоны Глава 15. Язык QML Виджет QML в программе Qt Самостоятельная программа на языке QML Изменения и дополнения Программа clocks Утилита qmlviewer Заключение Список литературы Предметный указатель