Главная C++ » Файлы » Учебники » C++ [ Добавить материал ]

Макс Шлее: QT4 - Профессиональное программирование на C++

[Скачать удаленно (24.56 MB)] 17.11.2009, 00:17
Лучшая книга для начального изучения кроссплатформенной библиотеки Qt для C++. Если до этого с Qt не работали, другие варианты даже не рассматривайте. Макс Шлее очень подробно и наглядно описал в книге использование всех основных классов библиотеки.

Стоит отметить, что данная книга значительно отличается от аналогичной книги по Qt3: много информации обновлено и добавлено. Появились даже новые разделы, а в некоторых задачах программирования,например, графики с переходом от Qt3 к Qt4 появились намного более новые и лучшие подходы решения данных задач, что привело к появлению соверешенно новых классов (старые подобные классы теперь морально устарели, но оставлены, что бы избавиться от проблем совместимости конечно же, но в книге уже не рассмотрены) и полному пересмотру некоторых разделов книги! То-есть делайте вывод: книга по QT3 уже явно устарела и даже лучше её не открывать, а сразу перейти на эту... а то ещё и переучиваться придётся...





Полное содержание книги:

ВВЕДЕНИЕ

1
Foreword 1
Предисловие 2
От автора ко второму изданию 2
Вступление 4
Структура книги 10
Часть 1. Основы Qt 10
Часть 2. Элементы управления 11
Часть 3. События и взаимодействие с пользователем 13
Часть 4. Графика и звук 14
Часть 5. Создание приложений 16
Часть 6. Особые возможности Qt 17
Часть 7. Язык сценария Qt Script 19
Благодарности

20

ЧАСТЬ 1. ОСНОВЫ QT

23

ГЛАВА 1. ОБЗОР ИЕРАРХИИ КЛАССОВ QT

25
Первая программа на Qt 25
Модули Qt 27
Пространство имен Qt 29
Модуль QtCore 29
Модуль QtGui 30
Модуль QtNetwork 32
Модуль QtXml 32
Модуль QtSql 32
Модуль QtOpenGL 32
Модуль QtSvg 32
Модуль Qt3Support 32
Резюме

33

ГЛАВА 2. ФИЛОСОФИЯ ОБЪЕКТНОЙ МОДЕЛИ

34
Механизм сигналов и слотов 37
Сигналы 42
Слоты 45
Соединение объектов 46
Разъединение объектов 52
Организация объектных иерархий 52
Метаобъектная информация 55
Резюме

56

ГЛАВА 3. РАБОТА С QT

58
Установка Qt 58
Установка Qt в ОС Windows 58
Установка Qt в ОС Linux 60
Qt Assistant 63
Работа с qmake 63
Рекомендации для проекта с Qt 67
Метаобъектный компилятор MOC 68
Компилятор ресурсов RCC 69
Структура Qt-проекта 70
Интегрированная среда разработки IDE 72
Методы отладки 73
Отладчик GDB (GNU Debugger) 73
Прочие методы отладки 77
Глобальные определения Qt 79
Резюме

81

ГЛАВА 4. БИБЛИОТЕКА КОНТЕЙНЕРОВ

82
Контейнерные классы 83
Итераторы 85
Итераторы в стиле Java 86
Итераторы в стиле STL 87
Ключевое слово foreach 90
Описание последовательных контейнеров 90
Вектор QVector 91
Списки QList, QLinkedList 93
Стек QStack 95
Очередь QQueue 96
Описание ассоциативных контейнеров 97
Словари QMap, QMultiMap 98
Хэши QHash и QMultiHash 101
Множество QSet 102
Алгоритмы 105
Сортировка 106
Поиск 107
Сравнение 107
Заполнение значениями 108
Строки 108
Регулярные выражения 110
Произвольный тип QVariant 113
Модель общего использования данных 114
Резюме

115

ЧАСТЬ 2. ЭЛЕМЕНТЫ УПРАВЛЕНИЯ

117

ГЛАВА 5. С ЧЕГО НАЧИНАЮТСЯ ЭЛЕМЕНТЫ УПРАВЛЕНИЯ

119
Класс QWidget 119
Размеры и координаты виджета 123
Механизм закулисного хранения (Backing Store) 124
Установка фона виджета 124
Изменение указателя мыши 126
Стек виджетов 130
Рамки 130
Виджет видовой прокрутки 132
Резюме

134

ГЛАВА 6. УПРАВЛЕНИЕ АВТОМАТИЧЕСКИМ РАЗМЕЩЕНИЕМ ЭЛЕМЕНТОВ

136
Лейаут-менеджеры (Layout managers) 137
Горизонтальное и вертикальное размещения 138
Вложенные размещения 144
Табличное размещение QGridLayout 146
Порядок следования табулятора 154
Разделители QSplitter 155
Резюме

157

ГЛАВА 7. ЭЛЕМЕНТЫ ОТОБРАЖЕНИЯ

158
Надписи 158
Индикатор прогресса 164
Электронный индикатор 168
Резюме

171

ГЛАВА 8. КНОПКИ

172
С чего начинаются кнопки. Класс QAbstractButton 172
Установка текста 172
Установка изображения 173
Взаимодействие с пользователем 173
Опрос состояния 173
Кнопка нажатия 174
Флажки 178
Переключатели 179
Группировка кнопок 181
Резюме

186

ГЛАВА 9. ЭЛЕМЕНТЫ НАСТРОЙКИ

187
Класс QAbstractSlider 187
Изменение положения 187
Установка диапазона 188
Установка шага 188
Установка и получение значений 188
Ползунок 189
Полоса прокрутки 191
Установщик 194
Резюме

196

ГЛАВА 10. ЭЛЕМЕНТЫ ВВОДА

197
Однострочное текстовое поле 197
Редактор текста 200
Расцветка синтаксиса (Syntax Highlighting) 204
С чего начинаются виджеты счетчиков 205
Счетчик 205
Элемент ввода даты и времени 207
Проверка ввода 208
Резюме

210

ГЛАВА 11. ЭЛЕМЕНТЫ ВЫБОРА

211
Простой список 211
Вставка элементов 212
Сортировка элементов 213
Выбор элементов пользователем 214
Изменение элементов пользователем 214
Режим пиктограмм 214
Иерархические списки 216
Таблицы 220
Выпадающий список 222
Закладки 224
Виджет панели инструментов 225
Резюме

227

ГЛАВА 12. ИНТЕРВЬЮ ИЛИ МОДЕЛЬ-ПРЕДСТАВЛЕНИЕ

228
Концепт 229
Модель 230
Представление 232
Выделение элемента 234
Делегат 236
Индексы модели 239
Иерархические данные 240
Роли элементов 245
Создание собственных моделей данных 247
Промежуточная модель данных (Proxy Model) 256
Модель элементно-базированных классов 259
Резюме

262

ГЛАВА 13. ЦВЕТОВАЯ ПАЛИТРА ЭЛЕМЕНТОВ УПРАВЛЕНИЯ

264
Резюме

269

ЧАСТЬ 3. СОБЫТИЯ И ВЗАИМОДЕЙСТВИЕ С ПОЛЬЗОВАТЕЛЕМ

271

ГЛАВА 14. СОБЫТИЯ

273
Перезапись специализированных методов обработки событий 276
События клавиатуры 276
Событие обновления контекста рисования. Класс QPaintEvent 280
События мыши 281
Событие таймера. Класс QTimerEvent 287
События перетаскивания (drag&drop) 288
Остальные классы событий 289
Реализация собственных классов событий 292
Методы enterEvent() и leaveEvent() 292
Перезапись метода event() 293
Сохранение работоспособности приложения 297
Резюме

298

ГЛАВА 15. ФИЛЬТРЫ СОБЫТИЙ

299
Резюме

303

ГЛАВА 16. ИСКУССТВЕННОЕ СОЗДАНИЕ СОБЫТИЙ

304
Резюме

308

ЧАСТЬ 4. ГРАФИКА И ЗВУК

309

ГЛАВА 17. ВВЕДЕНИЕ В КОМПЬЮТЕРНУЮ ГРАФИКУ

311
Классы геометрии 311
Точка 311
Двумерный размер 313
Прямоугольник 314
Прямая линия 315
Полигон 316
Цвет 317
Класс QСolor 317
Цветовая модель RGB 317
Цветовая модель HSV 320
Цветовая модель CMYK 321
Палитра 323
Предопределенные цвета 323
Резюме

325

ГЛАВА 18. ЛЕГЕНДА О КОРОЛЕ АРТУРЕ И КОНТЕКСТЕ РИСОВАНИЯ

326
Класс QPainter 328
Перья и кисти 330
Градиенты 333
Техника сглаживания (Anti-Aliasing) 336
Рисование 336
Запись команд рисования 344
Трансформация систем координат 345
Графическая траектория (painter path) 349
Отсечения 350
Режим совмещения (composition mode) 352
Резюме

356

ГЛАВА 19. РАСТРОВЫЕ ИЗОБРАЖЕНИЯ

357
Форматы графических файлов 357
Формат BMP 357
Формат GIF 358
Формат PNG 358
Формат JPEG 358
Формат XPM 359
Контекстно-независимое представление 360
Класс QImage 360
Класс QImage как контекст рисования 368
Контекстно-зависимое представление 370
Класс QPixmap 370
Класс QPixmapCache 372
Класс QBitmap 372
Использованием масок для QPixmap 373
Создание нестандартного окна виджета 374
Резюме

377

ГЛАВА 20. РАБОТА СО ШРИФТАМИ

378
Отображение строки 380
Резюме

383

ГЛАВА 21. ГРАФИЧЕСКОЕ ПРЕДСТАВЛЕНИЕ

385
Сцена 386
Представление 387
Элемент 387
События 391
Резюме

399

ГЛАВА 22. АНИМАЦИЯ

400
Резюме

402

ГЛАВА 23. РАБОТА С OPENGL

403
Основные положения OpenGL 404
Классы Qt для работы с OpenGL 405
Реализация OpenGL-программы 406
Разворачивание OpenGL-программ во весь экран 411
Графические примитивы OpenGL 411
Трехмерная графика 416
Резюме

422

ГЛАВА 24. ВЫВОД НА ПЕЧАТЬ

423
Резюме

430

ГЛАВА 25. РАЗРАБОТКА СОБСТВЕННЫХ ЭЛЕМЕНТОВ УПРАВЛЕНИЯ

431
Резюме

438

ГЛАВА 26. ЭЛЕМЕНТЫ СО СТИЛЕМ

439
Встроенные стили 441
Создание собственных стилей 447
Метод рисования простых элементов управления 449
Метод рисования элементов управления 449
Метод рисования составных элементов управления 450
Реализация стиля простого элемента управления 450
Использование QStyle для рисования виджетов 455
Использование каскадного стиля документа 456
Резюме

460

ГЛАВА 27. ЗВУК

461
Воспроизведение звука 461
Проверка возможности воспроизведения 462
Пример программы, воспроизводящей звук 463
Резюме 467
ЧАСТЬ 5. СОЗДАНИЕ ПРИЛОЖЕНИЙ

469

ГЛАВА 28. СОХРАНЕНИЕ НАСТРОЕК ПРИЛОЖЕНИЯ

471
Управление сеансом 480
Резюме

482

ГЛАВА 29. БУФЕР ОБМЕНА И ПЕРЕТАСКИВАНИЕ

483
Буфер обмена 483
Перетаскивание 484
Реализация Drag 485
Реализация Drop 488
Создание собственных типов перетаскивания 491
Резюме

492

ГЛАВА 30. ИНТЕРНАЦИОНАЛИЗАЦИЯ ПРИЛОЖЕНИЯ

494
Подготовка приложения к интернационализации 495
Утилита LUPDATE 495
Программа Qt Linguist 497
Утилита LRELEASE. Пример программы использующей перевод 498
Резюме

500

ГЛАВА 31. СОЗДАНИЕ МЕНЮ

502
Анатомия меню 503
Отрывные меню 507
Контекстные меню 508
Резюме

511

ГЛАВА 32. ДИАЛОГОВЫЕ ОКНА

512
Правила создания диалоговых окон 512
Класс QDialog 514
Модальные диалоговые окна 514
Немодальные диалоговые окна 515
Создание собственного диалогового окна 515
Стандартные диалоговые окна 520
Диалоговое окно выбора файлов 520
Диалоговое окно настройки принтера 523
Диалоговое окно выбора цвета 524
Диалоговое окно выбора шрифта 525
Диалоговое окно ввода 526
Диалоговое окно прогресса 527
Окна сообщений 529
Окно информационного сообщения 532
Окно предупреждающего сообщения 532
Окно критического сообщения 534
Окно сообщения About 534
Окно сообщения About Qt 535
Окно сообщения об ошибке 535
Резюме

537

ГЛАВА 33. ПРЕДОСТАВЛЕНИЕ ПОМОЩИ

538
Воздушная подсказка 538
Подсказка "Что это" 539
Система помощи (Online Help) 541
Резюме

544

ГЛАВА 34. ПАНЕЛЬ ИНСТРУМЕНТОВ И СТРОКА СОСТОЯНИЯ

546
Панель инструментов 546
Строка состояния 549
Резюме

552

ГЛАВА 35. СОЗДАНИЕ ПРИЛОЖЕНИЙ

553
Класс главного окна QMainWindow 553
Предшествующее окно 555
Класс действия QAction 557
Создание SDI- и MDI-приложений 559
SDI-приложение 559
MDI-приложение 566
Резюме 575
ЧАСТЬ 6. ОСОБЫЕ ВОЗМОЖНОСТИ QT

577

ГЛАВА 36. РАБОТА С ФАЙЛАМИ, ДИРЕКТОРИЯМИ И ПОТОКАМИ ВВОДА/ВЫВОДА

579
Ввод/вывод. Класс QIODevice 579
Работа с файлами. Класс QFile 582
Класс QBuffer 584
Класс QTemporaryFile 585
Работа с директориями. Класс QDir 585
Просмотр содержимого директории 586
Информация о файлах. Класс QFileInfo 590
Файл или каталог? 590
Путь и имя файла 591
Информация о дате и времени 591
Получение атрибутов файла 591
Определение размера файла 592
Потоки ввода/вывода 592
Класс QTextStream 593
Класс QDataStream 594
Резюме

595

ГЛАВА 37. ДАТА, ВРЕМЯ И ТАЙМЕР

597
Дата и время 597
Класс даты QDate 597
Класс времени QTime 599
Класс даты и времени QDateTime 601
Таймер 601
Событие таймера 603
Класс QTimer 605
Класс QBasicTimer 608
Резюме

608

ГЛАВА 38. ПРОЦЕССЫ И ПОТОКИ

609
Процессы 609
Потоки 613
Приоритеты 615
Обмен сообщениями 616
Синхронизация 628
Резюме

632

ГЛАВА 39. ПРОГРАММИРОВАНИЕ ПОДДЕРЖКИ СЕТИ

634
Сокетное соединение 634
Модель "клиент-сервер" 635
Реализация сервера 636
Реализация клиента 643
Высокоуровневые классы 650
Класс QFtp 650
Класс QHttp 651
Резюме

652

ГЛАВА 40. РАБОТА С XML

653
Основные понятия и структура XML-документа 654
XML и Qt 655
Работа с DOM 656
Работа с SAX 663
Чтение XML-документа 663
Резюме

667

ГЛАВА 41. ПРОГРАММИРОВАНИЕ БАЗ ДАННЫХ

668
Основные положения SQL 669
Создание таблицы 669
Операция вставки 669
Чтение данных 670
Изменение данных 670
Удаление 671
Использование SQL в библиотеке Qt 671
Соединение с базой данных (второй уровень) 673
Исполнение команд SQL (второй уровень) 674
Классы SQL-моделей для Интервью (третий уровень) 678
Резюме

681

ГЛАВА 42. ДИНАМИЧЕСКИЕ БИБЛИОТЕКИ И СИСТЕМА РАСШИРЕНИЙ

682
Динамические библиотеки 682
Создание динамической библиотеки 683
Использование динамических библиотек 684
Расширения (plug-ins) 686
Расширение для Qt 686
Поддержка собственных расширений в приложениях 688
Резюме

697

ГЛАВА 43. СОВМЕСТНОЕ ИСПОЛЬЗОВАНИЕ QT С ПЛАТФОРМОЗАВИСИМЫМИ API

699
Совместное использование с Windows API 700
Совместное использование с Linux 703
Резюме

703

ГЛАВА 44. QT DESIGNER. БЫСТРАЯ РАЗРАБОТКА ПРОТОТИПОВ

704
Создание новой формы в Qt Designer 704
Добавление виджетов 708
Размещения (Layouts) 710
Порядок следования табулятора 712
Сигналы и слоты 712
Использование форм в проектах 715
Компиляция 717
Резюме

719

ГЛАВА 45. ПРОВЕДЕНИЕ ТЕСТОВ

720
Создание тестов 721
Тесты с передачей данных 725
Создание тестов графического интерфейса 728
Параметры для запуска тестов 730
Резюме

731

ГЛАВА 46. РЕКОМЕНДАЦИИ ПО МИГРАЦИИ ПРОГРАММ ИЗ QT3 В QT4

732
Основные отличия Qt4 от Qt3 733
Классы графического интерфейса 734
Контейнерные классы 735
Классы программирования сети 736
Классы для программирования баз данных 736
Qt Designer 737
Начало перевода на Qt4 737
Модуль совместимости Qt3Support 737
Завершение перевода на Qt4 739
Резюме 740
ЧАСТЬ 7. ЯЗЫК СЦЕНАРИЕВ QT SCRIPT

741

ГЛАВА 47. ОСНОВЫ

743
Принцип взаимодействия с языком сценариев 744
Привет, сценарий! 749
Резюме

751

ГЛАВА 48. СИНТАКСИС ЯЗЫКА СЦЕНАРИЕВ

752
Комментарии 753
Переменные 753
Предопределенные типы данных 754
Преобразование типов 756
Константы 758
Операции 758
Операторы присваивания 758
Арифметические операции 759
Поразрядные операции 760
Операции сравнения 761
Приоритеты выполнения операции 762
Управляющие структуры 763
Условные операторы 763
Оператор условного выражения 765
Циклы 766
Оператор with 768
Исключительные ситуации 768
Функции 770
Встроенные функции 771
Объектная ориентация 772
Резюме

773

ГЛАВА 49. ВСТРОЕННЫЕ ОБЪЕКТЫ QT SCRIPT

774
Объект Global 774
Объект Number 774
Объект Boolean 775
Объект String 775
Объект RegExp 776
Объект Array 777
Объект Date 779
Объект Маth 779
Объект Function 783
Резюме

783

ГЛАВА 50. КЛАССЫ ПОДДЕРЖКИ QT SCRIPT И ПРАКТИЧЕСКИЕ ПРИМЕРЫ

784
Класс QScriptValue 784
Класс QScriptContext 785
Класс QScriptEngine 785
Практические примеры 787
"Черепашья" графика 787
Сигналы, слоты и функции 797
Резюме 803
ЭПИЛОГ 804
ПРИЛОЖЕНИЯ 805
ПРИЛОЖЕНИЕ 1. ТАБЛИЦЫ 7-БИТНОЙ ASCII-КОДИРОВКИ 807
ПРИЛОЖЕНИЕ 2. ТАБЛИЦА ПРОСТЫХ ЧИСЕЛ 811
ПРИЛОЖЕНИЕ 3. ГЛОССАРИЙ 815
ПРИЛОЖЕНИЕ 4. ОПИСАНИЕ КОМПАКТ-ДИСКА 820
ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ 831
XVIII Оглавление XIX Оглавление

Похожие материалы:

Добавил: COBA (17.11.2009) | Категория: C++
Просмотров: 7457 | Загрузок: 2122 | Рейтинг: 5.0/2 |
Теги: классика, учебник, Qt, программирование, ЯВУ, C++
Комментарии (0)

Имя *:
Email *:
Код *: