Книга посвящена разработке приложений для Windows, Linux и Mac OS X с использованием библиотеки Qt версии 4.5. Подробно рассмотрены возможности, предоставляемые этой библиотекой, и описаны особенности, выгодно отличающие ее от других библиотек. Впервые описана интегрированная среда разработки Qt Creator. Книга содержит исчерпывающую информацию о классах Qt4 и также практические рекомендации их применения, проиллюстрированные на большом количестве подробно прокомментированных примеров. DVD содержит исходные тексты описанных в книге примеров, библиотеку Qt4.5 и интегрированную среду разработки Qt Creator для Windows, Linux и Mac OS X.
Author(s): Макс Шлее
Publisher: БХВ-Петербург
Year: 2010
Language: Russian
Commentary: 1146121452. 600dpi+OCR
Pages: 883
Оглавление ......Page 4
Предисловие Маттиаса Эттриха ......Page 14
Благодарности ......Page 16
Предисловие ......Page 17
Введение ......Page 19
Структура книги ......Page 26
Часть I. Основы Qt ......Page 36
Первая программа на Qt ......Page 37
Модули Qt ......Page 39
Резюме ......Page 45
Глава 2. Философия объектной модели ......Page 46
Механизм сигналов и слотов ......Page 49
Организация объектных иерархий ......Page 63
Метаобъектная информация ......Page 65
Резюме ......Page 66
Qt Assistant ......Page 68
Работа с qmake ......Page 70
Рекомендации для проекта с Qt ......Page 73
Метаобъектный компилятор МОС ......Page 74
Компилятор ресурсов RCC ......Page 75
Структура Qt-проекта ......Page 76
Методы отладки ......Page 77
Глобальные определения Qt ......Page 83
Резюме ......Page 84
Глава 4. Библиотека контейнеров ......Page 85
Контейнерные классы ......Page 86
Итераторы ......Page 88
Последовательные контейнеры ......Page 93
Ассоциативные контейнеры ......Page 101
Алгоритмы ......Page 107
Строки ......Page 110
Произвольный тип QVariant ......Page 114
Модель общего использования данных ......Page 115
Резюме ......Page 117
Часть II. Элементы управления ......Page 118
Глава 5. С чего начинаются элементы управления ......Page 119
Класс QWidget ......Page 120
Стек виджетов ......Page 128
Рамки ......Page 129
Виджет видовой прокрутки ......Page 130
Резюме ......Page 132
Глава б. Управление автоматическим размещением элементов ......Page 134
Менеджеры компоновки (layout managers) ......Page 135
Порядок следования табулятора ......Page 150
Разделители QSplitter ......Page 151
Резюме ......Page 153
Надписи ......Page 154
Индикатор прогресса ......Page 160
Электронный индикатор ......Page 163
Резюме ......Page 166
С чего начинаются кнопки. Класс QAbstractButton ......Page 167
Кнопки ......Page 168
Флажки ......Page 172
Переключатели ......Page 174
Группировка кнопок ......Page 175
Резюме ......Page 180
Класс QAbstractSlider ......Page 181
Ползунок ......Page 183
Полоса прокрутки ......Page 185
Установщик ......Page 187
Резюме ......Page 189
Однострочное текстовое поле ......Page 190
Редактор текста ......Page 193
С чего начинаются виджеты счетчиков ......Page 204
Проверка ввода ......Page 206
Резюме ......Page 209
Простой список ......Page 210
Иерархические списки ......Page 215
Таблицы ......Page 218
Выпадающий список ......Page 220
Закладки ......Page 221
Виджет панели инструментов ......Page 223
Резюме ......Page 224
Глава 12. Интервью или модель-представление ......Page 226
Концепция ......Page 227
Индексы модели ......Page 236
Иерархические данные ......Page 237
Роли элементов ......Page 242
Создание собственных моделей данных ......Page 243
Промежуточная модель данных (Proxy model) ......Page 252
Модель элементно-базированных классов ......Page 254
Резюме ......Page 257
Глава 13. Цветовая палитра элементов управления ......Page 258
Резюме ......Page 262
Часть III. События и взаимодействие с пользователем ......Page 263
Глава 14. События ......Page 264
Перегрузка специализированных методов обработки событий ......Page 267
Реализация собственных классов событий ......Page 281
Переопределение метода event() ......Page 282
Сохранение работоспособности приложения ......Page 286
Резюме ......Page 287
Глава 15. Фильтры событий ......Page 288
Реализация фильтров событий ......Page 289
Резюме ......Page 292
Глава 16. Искусственное создание событий ......Page 293
Резюме ......Page 297
Часть IV. Графика и звук ......Page 298
Классы геометрии ......Page 299
Цвет ......Page 304
Резюме ......Page 311
Глава 18. Легенда о короле Артуре и контексте рисования ......Page 313
Класс QPainter ......Page 315
Перья и кисти ......Page 317
Градиенты ......Page 320
Техника сглаживания (Anti-Aliasing) ......Page 322
Рисование ......Page 323
Запись команд рисования ......Page 330
Трансформация систем координат ......Page 331
Графическая траектория (painter path) ......Page 334
Отсечения ......Page 335
Режим совмещения (composition mode) ......Page 337
Резюме ......Page 340
Форматы графических файлов ......Page 341
Контекстно-независимое представление ......Page 344
Контекстно-зависимое представление ......Page 352
Резюме ......Page 359
Глава 20. Работа со шрифтами ......Page 360
Отображение строки ......Page 362
Резюме ......Page 365
Глава 21. Графическое представление ......Page 366
Сцена ......Page 367
Представление ......Page 368
Элемент ......Page 369
События ......Page 373
Виджеты в графическом представлении ......Page 379
Резюме ......Page 382
Класс QMovie ......Page 383
SVG-графика ......Page 385
Резюме ......Page 387
Глава 23. Работа с OpenGL ......Page 388
Основные положения OpenGL ......Page 389
Классы Qt для работы с OpenGL ......Page 390
Реализация OpenGL-программы ......Page 391
Разворачивание OpenGL-программ во весь экран ......Page 395
Графические примитивы OpenGL ......Page 396
Трехмерная графика ......Page 400
Резюме ......Page 405
Класс QPrinter ......Page 406
Резюме ......Page 412
Примеры создания виджетов i ......Page 413
Резюме ......Page 420
Глава 26. Элементы со стилем ......Page 421
Встроенные стили ......Page 423
Создание собственных стилей ......Page 428
Использование QStyle для рисования виджетов ......Page 436
Использование каскадных стилей документа ......Page 437
Резюме ......Page 445
Воспроизведение звука ......Page 446
Проверка возможности воспроизведения ......Page 447
Пример программы, воспроизводящей звук ......Page 448
Резюме ......Page 452
Глава 28. Мультимедиа ......Page 453
Путешествие к истокам Phonon ......Page 454
Архитектура Phonon ......Page 455
Быстрый старт ......Page 457
Создаем простой медиаплеер ......Page 459
Резюме ......Page 463
Часть V. Создание приложений ......Page 465
Глава 29. Сохранение настроек приложения ......Page 466
Управление сеансом ......Page 474
Резюме ......Page 476
Буфер обмена ......Page 477
Перетаскивание ......Page 478
Резюме ......Page 493
Глава 31. Интернационализация приложения ......Page 494
Утилита 1 update ......Page 495
Программа Qt Linguist ......Page 497
Утилита lrelease. Пример программы, использующей перевод ......Page 498
Резюме ......Page 500
Анатомия меню ......Page 501
Отрывные меню ......Page 506
Контекстные меню ......Page 507
Резюме ......Page 509
Правила создания диалоговых окон ......Page 510
Класс QDialog ......Page 511
Стандартные диалоговые окна ......Page 518
Окна сообщений ......Page 527
Резюме ......Page 533
Воздушная подсказка ......Page 535
Подсказка "Что это" ......Page 536
Система помощи (Online Help) ......Page 538
Резюме ......Page 541
Класс главного окна QMainWindow ......Page 542
Класс действия QAction ......Page 544
Панель инструментов ......Page 545
Строка состояния ......Page 548
Окно заставки ......Page 551
SDI- и MDI-приложения ......Page 553
Резюме ......Page 569
Область оповещений ......Page 570
Виджет экрана ......Page 577
Резюме ......Page 580
Часть VI. Особые возможности Qt ......Page 581
Ввод-вывод. Класс QIODevice ......Page 582
Работа с директориями. Класс QDir ......Page 588
Информация о файлах. Класс QFilelnfo ......Page 593
Потоки ввода-вывода ......Page 595
Резюме ......Page 598
Дата и время ......Page 599
Таймер ......Page 603
Резюме А ......Page 609
Процессы ......Page 610
Потоки ......Page 614
Резюме ......Page 632
Сокетное соединение ......Page 633
Высокоуровневые классы ......Page 647
Резюме ......Page 649
Глава 41. Работа с XML ......Page 650
Основные понятия и структура XML-документа ......Page 651
XML и Qt ......Page 652
Работа с DOM ......Page 653
Работа с SAX ......Page 659
Резюме ......Page 663
Глава 42. Программирование баз данных ......Page 664
Основные положения SQL ......Page 665
Использование SQL в библиотеке Qt ......Page 667
Резюме ......Page 676
Динамические библиотеки ......Page 677
Расширения (plug-ins) ......Page 681
Резюме ......Page 691
Глава 44. Совместное использование Qt с платформозависимыми API ......Page 692
Совместное использование с Windows API ......Page 693
Резюме ......Page 696
Создание новой формы в Qt Designer ......Page 697
Добавление виджетов ......Page 701
Компоновка (layout) ......Page 703
Порядок следования табулятора ......Page 704
Сигналы и слоты ......Page 705
Использование форм в проектах ......Page 707
Компиляция ......Page 709
Динамическая загрузка формы ......Page 710
Резюме ......Page 714
Глава 46. Проведение тестов ......Page 715
Создание тестов ......Page 716
Создание тестов графического интерфейса ......Page 723
Параметры для запуска тестов ......Page 724
Резюме ......Page 725
Глава 47. WebKit ......Page 726
А зачем? ......Page 728
Быстрый старт ......Page 729
Написание простого Web-браузера ......Page 731
Резюме ......Page 738
Глава 48. Интегрированная среда разработки Qt Creator ......Page 739
Первый запуск ......Page 740
Создаем проект "Hello Qt Creator" ......Page 741
Пользовательский интерфейс Qt Creator ......Page 746
Редактирование текста ......Page 749
Интерактивный отладчик и программный экзорцизм ......Page 757
Резюме ......Page 767
Основные отличия Qt4 от Qt3 ......Page 768
Начало перевода на Qt4 ......Page 772
Резюме ......Page 775
Часть VII. Язык сценариев Qt Script ......Page 776
Глава 50. Основы поддержки сценариев ......Page 777
Принцип взаимодействия с языком сценариев ......Page 778
Привет, сценарий ......Page 783
Резюме ......Page 784
Зарезервированные ключевые слова ......Page 785
Переменные ......Page 786
Операции ......Page 791
Управляющие структуры ......Page 795
Функции ......Page 801
Объектная ориентация ......Page 804
Резюме ......Page 806
Объект Number ......Page 807
Объект String ......Page 808
Объект RegExp ......Page 809
Объект A rray ......Page 810
Объект Date ......Page 811
Объект Math ......Page 812
Объект Function ......Page 815
Резюме ......Page 816
Класс QScriptContext ......Page 817
Класс QScriptEngine ......Page 818
Практические примеры ......Page 820
Отладчик Qt Script ......Page 833
Резюме ......Page 836
Эпилог ......Page 837
ПРИЛОЖЕНИЯ ......Page 838
Приложение А. Таблицы семибитной кодировки ASCII ......Page 839
Приложение В. Таблица простых чисел ......Page 843
Приложение С. Глоссарий ......Page 846
Приложение D. Описание DVD-диска ......Page 851
Предметный указатель ......Page 861