Qt 5.3. Профессиональное программирование на C++ — Книга посвящена разработке приложений для Windows, Mac OS X и Linux с использованием библиотеки Qt версии 5.3. Подробно рассмотрены возможности, предоставляемые этой библиотекой, и описаны особенности, выгодно отличающие ее от других библиотек. Описана интегрированная среда разработки Qt Creator и работа с технологией Qt Quick. Книга содержит исчерпывающую информацию о классах Qt 5, и так же даны практические рекомендации их применения, проиллюстрированные на большом количестве подробно прокомментированных примеров. Проекты примеров из книги размещены на сайте издательства. Для программистов.
Название: Qt 5.3. Профессиональное программирование на C++ Автор: Шлее М. Издательство: БХВ-Петербург Год: 2015 Страниц: 929 Формат: PDF Размер: 24,1 Мб ISBN: 978-5-9775-3346-1 Качество: Отличное Серия или Выпуск: В подлиннике Язык: Русский
Содержание:
Предисловие Маттиаса Эттриха Благодарности Предисловие Структура книги Введение Часть I. Основы QT Глава 1. Обзор иерархии классов Qt Первая программа на Qt Модули Qt Пространство имен Qt Модуль QtCore Модуль QtGui Модуль QtWidgets Модули QtQuickvi QtQML Модуль QtNetwork Модули QtXml и QtXmlPattems Модуль QtSql Модуль QtOpenGL Модули QtWebKit и QtWebKitWidgets Модули QtMultimedia и QtMultimediaWidgets Модули QtScript и QtScriptTools Модуль QtSvg Резюме Глава 2. Философия объектной модели Механизм сигналов и слотов Сигналы Слоты Соединение объектов Разъединение объектов Переопределение сигналов Организация объектных иерархий Метаобъектная информация Резюме Глава 3. Работа с Qt Интегрированная среда разработки Qt Assistant Работа с qmake Рекомендации для проекта с Qt Метаобъектный компилятор МОС Компилятор ресурсов RCC Структура Qt-проекта Методы отладки Отладчик GDB (GNU Debugger) Прочие методы отладки Глобальные определения Qt Информация о библиотеке Qt Резюме Глава 4. Библиотека контейнеров Контейнерные классы Итераторы Итераторы в стиле Java Итераторы в стиле STL Ключевое слово for each Последовательные контейнеры Вектор QVector<T> Массив байтов QByteArray Массив битов QBitArray Списки QList<T> и QLinkedList<T> Стек QStack<T> Очередь QQueue<T> Ассоциативные контейнеры Словари QMap<K, Т> и QMultiMap<K, Т> Хэши QHash<K, Т> и QMultiHash<K, Т> Множество QSet<T> Алгоритмы Сортировка Поиск Сравнение Заполнение значениями Строки Регулярные выражения Произвольный тип QVariant Модель общего использования данных Резюме Часть II. Элементы управления Глава 5. С чего начинаются элементы управления? Класс Q Widget Размеры и координаты виджета Механизм закулисного хранения Установка фона виджета Изменение указателя мыши Стек виджетов Рамки Виджет видовой прокрутки Резюме Глава 6. Управление автоматическим размещением элементов Менеджеры компоновки (layout managers) Горизонтальное и вертикальное размещение Класс QBoxLayout Горизонтальное размещение QHBoxLayout Вертикальное размещение QVBoxLayout Вложенные размещения Табличное размещение QGridLayout Порядок следования табулятора Разделители QSplitter Резюме Глава 7. Элементы отображения Надписи Индикатор процесса Электронный индикатор Резюме Глава 8. Кнопки, флажки и переключатели С чего начинаются кнопки? Класс QAbstractButton Установка текста и изображения Взаимодействие с пользователем Опрос состояния Кнопки Флажки Переключатели Группировка кнопок Резюме Глава 9. Элементы настройки Класс QAbstractSlider Изменение положения Установка диапазона Установка шага Установка и получение значений Ползунок Полоса прокрутки Установщик Резюме Глава 10. Элементы ввода Однострочное текстовое поле Редактор текста Запись в файл Расцветка синтаксиса (syntax highlighting) С чего начинаются виджеты счетчиков? Счетчик Элемент ввода даты и времени Проверка ввода Резюме Глава 11. Элементы выбора Простой список Вставка элементов Выбор элементов пользователем Изменение элементов пользователем Режим пиктограмм Сортировка элементов Иерархические списки Сортировка элементов Таблицы Выпадающий список Вкладки Виджет панели инструментов Резюме Глава 12. Интервью, или модель-представление Концепция Модель Представление Выделение элемента Делегат Индексы модели Иерархические данные Роли элементов Создание собственных моделей данных Промежуточная модель данных (Proxy model) Модель элементно-ориентированных классов Резюме Глава 13. Цветовая палитра элементов управления Резюме Часть III. События и взаимодействие с пользователем Глава 14. События Переопределение специализированных методов обработки событий События клавиатуры Класс QKeyEvent Класс QFocusEvent Событие обновления контекста рисования. Класс QPaintEvent События мыши Класс QMouseEvent Класс QWheelEvent Методы enterEvent () и leaveEvent () Событие таймера. Класс QTimerEvent События перетаскивания (drag & drop) Класс QDragEnterEvent Класс QDragLeaveEvent Класс QDragMoveEvent Класс QDropEvent Остальные классы событий Класс QChildEvent Класс QCloseEvent Класс QHideEvent Класс QMoveEvent Класс QShowEvent Класс QResizeEvent Реализация собственных классов событий Переопределение метода event () Сохранение работоспособности приложения Резюме Глава 15. Фильтры событий Реализация фильтров событий Резюме Глава 16. Искусственное создание событий Резюме Часть IV. Графика и звук Глава 17. Введение в компьютерную графику Классы геометрии Точка Двумерный размер Прямоугольник Прямая линия Многоугольник Цвет Класс QColor Цветовая модель RGB Цветовая модель HSV Цветовая модель CMYK Палитра Предопределенные цвета Резюме Глава 18. Легенда о короле Артуре и контекст рисования Класс QPainter Перья и кисти Перо Кисть Градиенты Техника сглаживания (Anti-aliasing) Рисование Рисование точек Рисование линий Рисование сплошных прямоугольников Рисование заполненных фигур Запись команд рисования Трансформация систем координат Перемещение Масштабирование Поворот Скос Трансформационные матрицы Графическая траектория (painter path) Отсечения Режим совмещения (composition mode) Графические эффекты Резюме Глава 19. Растровые изображения Форматы графических файлов Формат BMP Формат GIF Формат PNG Формат JPEG Формат ХРМ Контекстно-независимое представление Класс Qlmage Класс Qlmage как контекст рисования Контекстно-зависимое представление Класс QPixmap Класс QPixmapCache Класс QBitmap Использование масок для QPixmap Создание нестандартного окна виджета Резюме Глава 20. Работа со шрифтами Отображение строки Резюме Глава 21. Графическое иредставлеиие Сцена Представление Элемент События Виджеты в графическом представлении Резюме Глава 22. Анимация Класс QMovie SVG-графика Анимационный движок и машина состояний Смягчающие линии Машина состояний и переходы Резюме Глава 23. Работа с OpenGL Основные положения OpenGL Классы Qt для работы с OpenGL Реализация OpenGL-программы Разворачивание OpenGL-программ во весь экран Графические примитивы OpenGL Трехмерная графика Резюме Глава 24. Вывод иа иечать Класс QP г inter Резюме Глава 25. Разработка собственных элементов управления Примеры создания виджетов Резюме Глава 26. Элементы со стилем Встроенные стили Создание собственных стилей Метод рисования простых элементов управления Метод рисования элементов управления Метод рисования составных элементов управления Реализация стиля простого элемента управления Использование QStyle для рисования виджетов Использование каскадных стилей документа Основные положения Изменение подэлементов Управление состояниями Пример Резюме Глава 27. Мультимедиа Звук Воспроизведение WAV-файлов: класс QSound Более продвинутые возможности воспроизведения звуковых файлов: класс QMediaPlayer Видео и класс QMediaPlayer Резюме Часть V. Создание приложений Глава 28. Сохранение настроек приложения Управление сеансом Резюме Глава 29. Буфер обмена и перетаскивание Буфер обмена Перетаскивание Реализация drag Реализация drop Создание собственных типов перетаскивания Резюме Глава 30. Интернационализация приложения Подготовка приложения к интернационализации Утилита lupdate Программа Qt Linguist Утилита lrelease. Пример программы, использующей перевод Смена перевода в процессе работы программы Завершающие размышления Резюме Глава 31. Создание меню «Анатомия» меню Отрывные меню Контекстные меню Резюме Глава 32. Диалоговые окна Правила создания диалоговых окон Класс QDialog Модальные диалоговые окна Немодальные диалоговые окна Создание собственного диалогового окна Стандартные диалоговые окна Диалоговое окно выбора файлов Диалоговое окно настройки принтера Диалоговое окно выбора цвета Диалоговое окно выбора шрифта Диалоговое окно ввода Диалоговое окно процесса Диалоговые окна мастера Диалоговые окна сообщений Окно информационного сообщения Окно предупреждающего сообщения Окно критического сообщения Окно сообщения о программе Окно сообщения About Qt Окно сообщения об ошибке Резюме Глава 33. Предоставление помощи Всплывающая подсказка Подсказка «Что это» Система помощи (Online Help) Резюме Глава 34. Главное окно, создание SDI- и MDI-приложений Класс главного окна QMainWindow Класс действия QAction Панель инструментов Доки Строка состояния Окно заставки SDI- и MDI-приложения SDI-приложение MDI-приложение Резюме Глава 35. Рабочий стол (Desktop) Область уведомлений Виджет экрана Класс сервиса рабочего стола Резюме Часть VI. Особые возможпостп Qt Глава 36. Работа с файлами, каталогами и потоками ввода/вывода Ввод/вывод. Класс QIODevice Работа с файлами. Класс QFile Класс QBuffer Класс QTemporaryFile Работа с каталогами. Класс QDir Просмотр содержимого каталога Информация о файлах. Класс QFilelnfo Файл или каталог? Путь и имя файла Информация о дате и времени Получение атрибутов файла Определение размера файла Наблюдение за файлами и каталогами Потоки ввода/вывода Класс QTextStream Класс QDataStream Резюме Глава 37. Дата, время и таймер Дата и время Класс даты QDate Класс времени QTime Класс даты и времени QDateTime Таймер Событие таймера Класс QTimer Класс QBasicTimer Резюме Глава 38. Процессы и потоки Процессы Потоки Приоритеты Обмен сообщениями Сигнально-слотовые соединения Отправка событий Синхронизация Мьютексы Семафоры Ожидание условий Возникновение тупиковых ситуаций Фреймворк QtConcurrent Резюме Глава 39. Программирование поддержки сети Сокетное соединение Модель «клиент-сервер» Реализация TCP-сервера Реализация TCP-клиента Реализация UDP-сервера и UDP-клиента Управление доступом к сети Блокирующий подход Режим прокси Резюме Глава 40. Работа с XML Основные понятия и структура XML-документа XML и Qt Работа с DOM Чтение XML-документа Создание и запись XML-документа Работа с SAX Чтение XML-документа Класс QXmlStreamReader для чтения XML Использование XQuery Резюме Глава 41. Программирование баз данных Основные положения SQL Создание таблицы Операция вставки Чтение данных Изменение данных Удаление Использование языка SQL в библиотеке Qt Соединение с базой данных (второй уровень) Исполнение команд SQL (второй уровень) Классы SQL-моделей для интервью (третий уровень) Модель запроса Табличная модель Реляционная модель Резюме Глава 42. Динамические библиотеки и система расширений Динамические библиотеки Динамическая загрузка и выгрузка библиотеки Расширения (plug-ins) Расширения для Qt Поддержка собственных расширений в приложениях Создание расширения для приложения Резюме Глава 43. Совместное использование Qt с платформозависимыми API Совместное использование с Windows API Совместное использование с Linux Совместное использование с Mac OS X Системная информация Резюме Глава 44. Qt Designer. Быстрая разработка прототипов Создание новой формы в Qt Designer Добавление виджетов Компоновка (layout) Порядок следования табулятора Сигналы и слоты Использование в формах собственных виджетов Использование форм в проектах Компиляция Динамическая загрузка формы Резюме Глава 45. Проведение тестов Создание тестов Тесты с передачей данных Создание тестов графического интерфейса Параметры для запуска тестов Резюме Глава 46. WebKit Путешествие к истокам А зачем? Быстрый старт Написание простого Web-браузера Ввод адресов Управление историей Загрузка страниц и ресурсов Пишем Web-браузер, попытка номер два Резюме Глава 47. Интегрированная среда разработки Qt Creator Первый запуск Создаем проект «Hello Qt Creator» Пользовательский интерфейс Qt Creator Окна вывода Окно проектного обозревателя Секция компилирования и запуска Редактирование текста Как подсвечен ваш синтаксис? Скрытие и отображение кода Автоматическое дополнение кода Поиск и замена Комбинации клавиш для ускорения работы Вертикальное выделение текста Автоматическое форматирование текста Комментирование блоков Просмотр кода методов класса их определения и атрибутов Помощь, которая всегда рядом Использование стороннего редактора Интерактивный отладчик и программный экзорцизм Синтаксические ошибки Ошибки компоновки Ошибки времени исполнения Логические ошибки Трассировка Команда Step Over Команда Step Into Команда Step Out Контрольные точки Окно переменных (Local and Watches) Окно цепочки вызовов (Call Stack) Резюме Глава 48. Рекомендации по миграции программ из Qt 4 в Qt 5 Основные отличия Qt 5 от Qt 4 Подробности перевода на Qt 5 Виджеты Контейнерные классы Функция qFindChildren<T*>() Сетевые классы WebKit Платформозависимый код Система расширений Plug-ins Принтер QPrinter Мультимедиа Модульное тестирование Реализация обратной совместимости Qt 5 с Qt 4 Резюме Часть VII. Язык сценариев Qt Script Глава 49. Основы поддержки сценариев Принцип взаимодействия с языком сценариев Первый шаг использования сценария Привет, сценарий Резюме Глава 50. Синтаксис языка сценариев Зарезервированные ключевые слова Комментарии Переменные Предопределенные типы данных Целый тип Вещественный тип Строковый тип Логический тип Преобразование типов Константы Операции Операторы присваивания Арифметические операции Поразрядные операции Операции сравнения Приоритет выполнения операций Управляющие структуры Условные операторы Оператор if… else Оператор switch Оператор условного выражения Циклы Операторы break и continue Цикл for Цикл while Цикл do… while Оператор with Исключительные ситуации Оператор try… catch Оператор throw Функции Встроенные функции Объектная ориентация Статические классы Наследование Перегрузка методов Сказание о «джейсоне» Резюме Глава 51. Встроенные объекты Qt Script Объект Global Объект Number Объект Boolean Объект String Преобразование строки к нижнему и верхнему регистрам Замена Получение символов Получение подстроки Объект RegExp Проверка строки Поиск совпадений Объект Array Дополнение массива элементами Адресация элементов Изменение порядка элементов массива Преобразование массива в строку Объединение массивов Упорядочивание элементов Многомерные массивы Объект Date Объект Math Модуль числа Округление Определение максимума и минимума Возведение в степень Вычисление квадратного кория Генератор случайных чисел Тригонометрические методы Вычисление натурального логарифма Объект Function Резюме Глава 52. Классы поддержки Qt Script и практические примеры Класс QScriptValue Класс QScriptContext Класс QScriptEngine Практические примеры «Черепашья» графика Сигналы, слоты и функции Отладчик Qt Script Резюме Часть VIII. Технология Qt Quick Глава 53. Знакомство с Qt Quick А зачем? Введение в QML Быстрый старт Использование JavaScript в QML Резюме Глава 54. Элементы Визуальные элементы Свойства элементов Собственные свойства Создание собственных элементов Готовые элементы пользовательского интерфейса Диалоговые окна Резюме Глава 55. Унравленне размещением элементов Фиксаторы Традиционные размещения Резюме Глава 56. Элементы графики Цвета Растровые изображения Элемент Image Элемент Borderlmage Градиенты Шрифты Рисование на элементах холста Резюме Глава 57. Пользовательский ввод Область мыши Сигналы Ввод с клавиатуры Фокус «Сырой» ввод Резюме Глава 58. Анимация Анимация при изменении свойств Анимация для изменения числовых значений Анимация с изменением цвета Анимация с поворотом Анимации поведения Параллельные и последовательные анимации Состояния и переходы Состояния Переходы Резюме Глава 59. Модель/Представление Модели Модель списка XML-модель Представление данных моделей Элемент Flickable Элемент ListView Элемент GridView Элемент PathView Резюме Глава 60. Qt Quick н C++ Использование языка QML в C++ Использование компонентов языка C++ в QML Резюме Эпилог Приложения Приложение 1. Таблицы семибитной кодировки ASCII Приложение 2. Таблица простых чисел Приложение 3. Глоссарии Приложение 4. Описание архива с примерами Предметный указатель