Описан язык Python з: типы данных, операторы, условия, циклы, реryлярные выражения, функции, инструменты объектно-ориентированноrо проrраммирования, работа с файлами и каталоrами, часто используемые модули стандартной библиотеки.
Приведены основы базы данных SQLite, интерфейс доступа к базе и способы получения данных из Интернета.
Особое внимание уделено библиотеке PyQt 5, позволяющей создавать приложения с rpафическим интерфейсом на языке Python.
Рассмотрены средства для обработки сигналов и событий, управления свойствами окна, разработки мноrопоточных приложений, описаны основные компоненты (кнопки, текстовые поля, списки, таблицы, меню, панели инструментов и др.), варианты их размещения внутри окна, инструменты для работы с базами данных, мультимедиа, печати документов и экспорта их в формате Adobe PDF.
На сайте издательства приведены все примеры из книги.
Для пpoгpaммucmoв.
Author(s): Прохоренок Н., Дронов В.
Publisher: БХВ-Петербург
Year: 2016
Language: Russian
Pages: 833
City: Санкт-Петербург
Введение................................................................................................................................ 15
ЧАСТЬ I. ОСНОВЫ ЯЗЫКА PYTHON....................................................................... 17
Глава 1. Первые шаги........................................................................................................19
1.1. Установка Python........................................................................................................................ 19
1.1.1. Установка нескольких интерпретаторов Python..........................................................23
1.1.2. Запуск программы с помощью разных версий Python............................................... 25
1.2. Первая программа на Python..................................................................................................... 26
1.3. Структура программы................................................................................................................28
1.4. Комментарии............................................................................................................................... 31
1.5. Скрытые возможности IDLE.................................................................................................... 32
1.6. Вывод результатов работы программы...................................................................................33
1.7. Ввод данных................................................................................................................................ 35
1.8. Доступ к документации......................................................................................... 37
Глава 2. Переменные..........................................................................................................40
2.1. Именование переменных.......................................................................................................... 40
2.2. Типы данных............................................................................................................................... 42
2.3. Присваивание значения переменным................................................................ 45
2.4. Проверка типа данных................................................................................................................47
2.5. Преобразование типов данных.................................................................................................48
2.6. Удаление переменной................................................................................................................51
Глава 3. Операторы............................................................................................................52
3.1. Математические операторы...................................................................................................... 52
3.2. Двоичные операторы..................................................................................................................54
3.3. Операторы для работы с последовательностями................................................................... 55
3.4. Операторы присваивания...........................................................................................................56
3.5. Приоритет выполнения операторов......................................................................................... 57
Глава 4. Условные операторы и циклы.......................................................................59
4.1. Операторы сравнения.................................................................................................................60
4.2. Оператор ветвления if...else...................................................................................................... 62
4.3. Циклfo r ........................................................................................................................................65
4.4. Функции range() и enumerateO................................................................................................. 67
4.5. Цикл while.....................................................................................................................................70
4.6. Оператор continue. Переход на следующую итерацию цикла.............................................71
4.7. Оператор break. Прерывание цикла........................................................................................ 71
Глава 5. Числа...................................................................................................................... 73
5.1. Встроенные функции и методы для работы с числами........................................................ 75
5.2. Модуль math. Математические функции.................................................................................77
5.3. Модуль random. Генерация случайных чисел........................................................................78
Глава 6. Строки и двоичные данные............................................................................81
6.1. Создание строки.......................................................................................................................... 82
6.2. Специальные символы...............................................................................................................86
6.3. Операции над строками..............................................................................................................86
6.4. Форматирование строк........................................................................................ 89
6.5. Мето дfor mat ()............................................................................................................................. 95
6.6. Функции и методы для работы со строками..........................................................................99
6.7. Настройка локали..................................................................................................................... 103
6.8. Изменение регистра символов.................................................................................................104
6.9. Функции для работы с символами......................................................................................... 104
6.10. Поиск и замена в строке.........................................................................................................105
6.11. Проверка типа содержимого строки................................................................................... 108
6.12. Тип данных bytes..................................................................................................................... 111
6.13. Тип данных by tear г a y.............................................................................................................115
6.14. Преобразование объекта в последовательность байтов...................................................118
6.15. Шифрование строк........................................................................................................... 119
Глава 7. Регулярные выражения................................................................................. 121
7.1. Синтаксис регулярных выражений........................................................................................ 121
7.2. Поиск первого совпадения с шаблоном................................................................................. 130
7.3. Поиск всех совпадений с шаблоном...................................................................................... 135
7.4. Замена в строке......................................................................................................................... 137
7.5. Прочие функции и методы.......................................................................................................139
Глава 8. Списки, кортежи, множества и диапазоны...............................................140
8.1. Создание списка........................................................................................................................ 141
8.2. Операции над списками...........................................................................................................144
8.3. Многомерные списки............................................................................................................... 147
8.4. Перебор элементов списка.......................................................................................................148
8.5. Генераторы списков и выражения-генераторы.................................................................... 149
8.6. Функции map(), zip(), filter() и reduce()................................................................................. 150
8.7. Добавление и удаление элементов списка.............................................................................153
8.8. Поиск элемента в списке и получение сведений о значениях, входящих в список....... 155
8.9. Переворачивание и перемешивание списка..........................................................................157
8.10. Выбор элементов случайным образом................................................................................. 157
8.11. Сортировка списка.................................................................................................................. 158
8.12. Заполнение списка числами...................................................................................................159
8.13. Преобразование списка в строку.......................................................................................... 160
8.14. Кортежи....................................................................................................................................160
8.15. Множества................................................................................................................................162
8.16. Диапазоны................................................................................................................................167
8.17. Модуль itertools....................................................................................................................... 169
8.17.1. Генерация неопределенного количества значений................................................169
8.17.2. Генерация комбинаций значений.............................................................................170
8.17.3. Фильтрация элементов последовательности.......................................................... 171
8.17.4. Прочие функции.........................................................................................................172
Глава 9. Словари...............................................................................................................175
9.1. Создание словаря...................................................................................................................... 175
9.2. Операции над словарями......................................................................... 178
9.3. Перебор элементов словаря.....................................................................................................179
9.4. Методы для работы со словарями.......................................................................................... 180
9.5. Генераторы словарей................................................................................................................ 183
Глава 10. Работа с датой и временем.......................................................................... 184
10.1. Получение текущих даты и времени................................................................................... 184
10.2. Форматирование даты и времени......................................................................................... 186
10.3. «Засыпание» скрипта.............................................................................................................. 188
10.4. Модуль datetime. Манипуляции датой и временем........................................................... 189
10.4.1. Класс timedelta...........................................................................................................189
10.4.2. Класс date...................................................................................................................191
10.4.3. Класс time...................................................................................................................195
10.4.4. Класс datetime............................................................................................................197
10.5. Модуль calendar. Вывод календаря.....................................................................................201
10.5.1. Методы классов TextCalendar п LocaleTextCalendar............................................ 203
10.5.2. Методы классов HTMLCalendar и LocaleHTMLCalendar....................................204
10.5.3. Другие полезные функции........................................................................................205
10.6. Измерение времени выполнения фрагментов кода...........................................................208
Глава 11. Пользовательские функции........................................................................211
11.1. Определение функции и ее вызов........................................................................................211
11.2. Расположение определений функций..................................................................................214
11.3. Необязательные параметры и сопоставление по ключам................................................ 215
11.4. Переменное число параметров в функции......................................................................... 218
11.5. Анонимные функции..............................................................................................................220
11.6. Функции-генераторы..............................................................................................................221
11.7. Декораторы функций............................................................................................................. 222
11.8. Рекурсия. Вычисление факториала......................................................................................224
11.9. Глобальные и локальные переменные................................................................................ 225
11.10. Вложенные функции........................................................................................................... 228
11.11. Аннотации функций............................................................................................................ 230
Глава 12. Модули и пакеты............................................................................................231
12.1. Инструкция import..................................................................................................................231
12.2. Инструкцияfro m .....................................................................................................................235
12.3. Пути поиска модулей............................................................................................................ 237
12.4. Повторная загрузка модулей................................................................................................ 238
12.5. Пакеты..................................................................................................................................... 239
Глава 13. Объектно-ориентированное программирование..................................243
13.1. Определение класса и создание экземпляра класса...........................................................243
13.2. Методы__inti__О и del__0 ............................................................................................... 247
13.3. Наследование.......................................................................................................................... 247
13.4. Множественное наследование........................................................................ 249
13.4.1. Примеси и их использование....................................................................................251
13.5. Специальные методы..............................................................................................................252
13.6. Перегрузка операторов.......................................................................................................... 255
13.7. Статические методы и методы класса.................................................................................257
13.8. Абстрактные методы..............................................................................................................258
13.9. Ограничение доступа к идентификаторам внутри класса................................................ 260
13.10. Свойства класса....................................................................................................................261
13.11. Декораторы классов.............................................................................................................263
Глава 14. Обработка исключений................................................................................ 264
14.1. Инструкция try...except...else...finally....................................................................................265
14.2. Инструкция with...as...............................................................................................................269
14.3. Классы встроенных исключений..........................................................................................271
14.4. Пользовательские исключения............................................................................................. 273
Глава 15. Итераторы, контейнеры и перечисления...............................................277
15.1. Итераторы............................................................................................................................... 278
15.2. Контейнеры............................................................................................................................. 279
15.2.1. Контейнеры-последовательности............................................................................ 279
15.2.2. Контейнеры-словари................................................................................................. 281
15.3. Перечисления.......................................................................................................................... 282
Глава 16. Работа с файлами и каталогами................................................................287
16.1. Открытие файла......................................................................................................................287
16.2. Методы для работы с файлами.............................................................................................294
16.3. Доступ к файлам с помощью модуля os..............................................................................300
16.4. Классы StringlO и BytesIO..................................................................................................... 302
16.5. Права доступа к файлам и каталогам...................................................................................306
16.6. Функции для манипулирования файлами........................................................................... 308
16.7. Преобразование пути к файлу или каталогу....................................................................... 311
16.8. Перенаправление ввода/вывода............................................................................................ 313
16.9. Сохранение объектов в файл................................................................................................ 316
16.10. Функции для работы с каталогами.....................................................................................320
16.11. Исключения, возбуждаемые файловыми операциями................................................... 323
Глава 17. Основы SQLite................................................................................................325
17.1. Создание базы данных............................................................................................... 325
17.2. Создание таблицы...................................................................................................................327
17.3. Вставка записей......................................................................................................................333
17.4. Обновление и удаление записей...........................................................................................336
17.5. Изменение структуры таблицы............................................................................................. 336
17.6. Выбор записей........................................................................................................................ 337
17.7. Выбор записей из нескольких таблиц..................................................................................340
17.8. Условия в инструкциях WHERE и НА VING....................................................................... 342
17.9. Индексы....................................................................................................................................345
17.10. Вложенные запросы.............................................................................................................347
17.11. Транзакции....................................................................................................... 348
17.12. Удаление таблицы и базы данных......................................................................................351
Глава 18. Доступ к базе данных SQLite из Python..................................................352
18.1. Создание и открытие базы данных......................................................................................353
18.2. Выполнение запросов.............................................................................................................354
18.3. Обработка результата запроса.............................................................................................. 358
18.4. Управление транзакциями.................................................................................................... 362
18.5. Создание пользовательской сортировки............................................................................. 364
18.6. Поиск без учета регистра символов.....................................................................................365
18.7. Создание агрегатных функций............................................................................................. 366
18.8. Преобразование типов данных............................................................................................. 367
18.9. Сохранение в таблице даты и времени................................................................................371
18.10. Обработка исключений....................................................................................................... 372
18.11. Трассировка выполняемых запросов.................................................................................375
Глава 19. Взаимодействие с Интернетом..................................................................376
19.1. Разбор URL-адреса.................................................................................................................376
19.2. Кодирование и декодирование строки запроса.................................................................. 379
19.3. Преобразование относительного URL-адреса в абсолютный..........................................383
19.4. Разбор HTML-эквивалентов................................................................................................. 383
19.5. Обмен данными по протоколу HTTP...................................................................................385
19.6. Обмен данными с помощью модуля urllib.request.............................................................390
19.7. Определение кодировки........................................................................................................ 393
ЧАСТЬ II. БИБЛИОТЕКА PYQT 5 .............................................................................395
Глава 20. Знакомство с PyQt 5......................................................................................397
20.1. Установка PyQt 5 ....................................................................................................................397
20.2. Первая программа...................................................................................................................400
20.3. Структура PyQt-программы.................................................................................................. 401
20.4. ООП-стиль создания окна................................................................................... 403
20.5. Создание окна с помощью программы Qt Designer...........................................................407
20.5.1. Создание формы........................................................................................................ 407
20.5.2. Загрузка ui-файла в программе................................................................................ 409
20.5.3. Преобразование ui-файла в ру-файл....................................................................... 411
20.6. Модули PyQt 5 ........................................................................................................................413
20.7. Типы данных в PyQt.............................................................................................................. 414
20.8. Управление основным циклом приложения....................................................................... 415
20.9. Многопоточные приложения................................................................................................ 416
20.9.1. Класс QThread: создание потока............................................................................. 416
20.9.2. Управление циклом внутри потока......................................................................... 420
20.9.3. Модуль queue: создание очереди заданий............................................................. 424
20.9.4. Классы QMutex и QMutexLocker.............................................................................. 427
20.10. Вывод заставки.....................................................................................................................431
20.11. Доступ к документации....................................................................................................... 433
Глава 21. Управление окном приложения................................................................435
21.1. Создание и отображение окна.............................................................................................. 435
21.2. Указание типа окна.................................................................................................................436
21.3. Изменение и получение размеров окна.............................................................................. 438
21.4. Местоположение окна на экране и управление им............................................................441
21.5. Указание координат и размеров...........................................................................................444
21.5.1. Класс QPoint: координаты точки........................................................................... 444
21.5.2. Класс QSize: размеры прямоугольной области.....................................................445
21.5.3. Класс QRecf. координаты и размеры прямоугольной области...........................447
21.6. Разворачивание и сворачивание окна..................................................................................452
21.7. Управление прозрачностью окна.........................................................................................454
21.8. Модальные окна......................................................................................................................455
21.9. Смена значка в заголовке окна.............................................................................................456
21.10. Изменение цвета фона окна................................................................................................ 457
21.11. Вывод изображения в качестве фона.................................................................................459
21.12. Создание окна произвольной формы.................................................................................460
21.13. Всплывающие подсказки.................................................................................................... 462
21.14. Закрытие окна из программы.............................................................................................463
Глава 22. Обработка сигналов и событий....................................... .........................464
22.1. Назначение обработчиков сигналов.....................................................................................464
22.2. Блокировка и удаление обработчика.................................................................................. 468
22.3. Генерация сигналов................................................................................................................470
22.4. Передача данных в обработчик............................................................................................472
22.5. Использование таймеров....................................................................................................... 473
22.6. Перехват всех событий.......................................................................................................... 476
22.7. События окна..........................................................................................................................479
22.7.1. Изменение состояния окна........................ 479
22.7.2. Изменение положения и размеров окна................................................................ 480
22.7.3. Перерисовка окна или его части............................................................................. 481
22.7.4. Предотвращение закрытия окна.............................................................................. 482
22.8. События клавиатуры............................................................................................................. 483
22.8.1. Установка фокуса ввода............................................................................................483
22.8.2. Назначение клавиш быстрого доступа...................................................................486
22.8.3. Нажатие и отпускание клавиши на клавиатуре..................................................... 488
22.9. События мыши........................................................................................................................489
22.9.1. Нажатие и отпускание кнопки мыши.....................................................................489
22.9.2. Перемещение указателя мыши................................................................................ 491
22.9.3. Наведение и увод указателя......................................................................................492
22.9.4. Прокрутка колесика мыши.......................................................................................492
22.9.5. Изменение внешнего вида указателя мыши...........................................................493
22.10. Технология drag & drop.......................................................................................................495
22.10.1. Запуск перетаскивания............................................................................................495
22.10.2. Класс QMimeData.................................................................................................... 497
22.10.3. Обработка сброса.................................................................................................... 498
22.11. Работа с буфером обмена.................................................................................................... 500
22.12. Фильтрация событий................................. 501
22.13. Искусственные события...................................................................................................... 501
Глава 23. Размещение компонентов в окнах........................................................... 503
23.1. Абсолютное позиционирование........................................................................................... 503
23.2. Горизонтальное и вертикальное выравнивание................................................................. 504
23.3. Выравнивание по сетке......................................................................................................... 507
23.4. Выравнивание компонентов формы....................................................................................510
23.5. Классы QStackedLayout и QStackedWidget.......................................................................... 512
23.6. Класс QSizePolicy....................................................................................................................513
23.7. Объединение компонентов в группу....................................................................................514
23.8. Панель с рамкой......................................................................................................................516
23.9. Панель с вкладками................................................................................................................517
23.10. Компонент «аккордеон»...................................................................................................... 521
23.11. Панели с изменяемым размером........................................................................................523
23.12. Область с полосами прокрутки..........................................................................................525
Глава 24. Основные компоненты................................................................................526
24.1. Надпись.................................................................................................................................... 526
24.2. Командная кнопка..................................................................................................................529
24.3. Переключатель........................................................................................................................ 531
24.4. Флажок.....................................................................................................................................531
24.5. Однострочное текстовое поле.............................................................................................. 532
24.5.1. Основные методы и сигналы....................................................................................532
24.5.2. Ввод данных по маске............................................................................................... 535
24.5.3. Контроль ввода....................................................................... 536
24.6. Многострочное текстовое поле............................................................................................ 537
24.6.1. Основные методы и сигналы....................................................................................538
24.6.2. Изменение параметров поля.....................................................................................540
24.6.3. Указание параметров текста и фона....................................................................... 541
24.6.4. Класс QTextDocument................................................................................................ 542
24.6.5. Класс QTextCursor..................................................................................................... 545
24.7. Текстовый браузер..................... 548
24.8. Поля для ввода целых и вещественных чисел.................................................................... 550
24.9. Поля для ввода даты и времени............................................................................................ 551
24.10. Календарь.............................................................................................................................. 554
24.11. Электронный индикатор................ 556
24.12. Индикатор хода процесса.................................................................................................... 557
24.13. Шкала с ползунком...............................................................................................................558
24.14. Круговая шкала с ползунком.............................................................................................. 560
24.15. Полоса прокрутки.................................................................................................................561
24.16. Web-браузер.......................................................................................................................... 561
Глава 25. Списки и таблицы.........................................................................................565
25.1. Раскрывающийся список........................................................................................................565
25.1.1. Добавление, изменение и удаление элементов......................................................565
25.1.2. Изменение параметров списка.................................................................................566
25.1.3. Поиск элементов.........................................................................................................567
25.1.4. Сигналы....................................................................................................................... 568
25.2. Список для выбора шрифта.................................................................................................. 568
25.3. Роли элементов....................................................................................................................... 569
25.4. Модели......................................................................................................................................570
25.4.1. Доступ к данным внутри модели.............................................................................570
25.4.2. Класс QStringListModel............................................................................................. 571
25.4.3. Класс QStandardltemModel.......................................................................................573
25.4.4. Класс QStandardltem................................................................................................. 576
25.5. Представления........................................................................................................................ 579
25.5.1. Класс QAbstractltemView...........................................................................................580
25.5.2. Простой список...........................................................................................................583
25.5.3. Таблица........................................................................................................................ 585
25.5.4. Иерархический список.............................................................................................. 587
25.5.5. Управление заголовками строк и столбцов............................................................589
25.6. Управление выделением элементов.....................................................................................591
25.7. Промежуточные модели........................................................................................................ 593
25.8. Использование делегатов...................................................................................................... 595
Глава 26. Работа с базами данных.............................................................................. 599
26.1. Соединение с базой данных.................................................................................................. 599
26.2. Получение сведений о структуре таблицы......................................................................... 602
26.2.1. Получение сведений о таблице................................................................................602
26.2.2. Получение сведений об отдельном поле................................................................603
26.2.3. Получение сведений об индексе............................................................................. 603
26.2.4. Получение сведений об ошибке...............................................................................604
26.3. Выполнение SQL-запросов и получение их результатов................................................. 604
26.3.1. Выполнение запросов............................................................................................... 605
26.3.2. Обработка результатов выполнения запросов.......................................................607
26.3.3. Очистка запроса..........................................................................................................608
26.3.4. Получение служебных сведений о запросе............................................................609
26.4. Модели, связанные с данными............................................................................................. 609
26.4.1. Модель, связанная с SQL-запросом........................................................................ 609
26.4.2. Модель, связанная с таблицей..................................................................................611
26.4.3. Модель, поддерживающая межтабличные связи.................................................. 616
26.4.4. Использование связанных делегатов...................................................................... 619
Глава 27. Работа с графикой......................................................................................... 621
27.1. Вспомогательные классы..................................................................................................... 621
27.1.1. Класс QColor. цвет.................................................................................................... 622
27.1.2. Класс QPen: перо....................................................................................................... 625
27.1.3. Класс QBrush: кисть.................................................................................................. 627
27.1.4. Класс QLine: линия.................................................................................................... 627
27.1.5. Класс QPolygon: многоугольник............................................................................. 628
27.1.6. Класс QFont: шрифт.................................................................................................. 630
27.2. Класс QPainter........................................................................................................................ 632
27.2.1. Рисование линий и фигур.........................................................................................633
27.2.2. Вывод текста...............................................................................................................636
27.2.3. Вывод изображения................................................................................................... 637
27.2.4. Преобразование систем координат......................................................................... 638
27.2.5. Сохранение команд рисования в файл.................................................................... 639
27.3. Работа с изображениями....................................................................................................... 640
27.3.1. Класс QPixmap..........................................................................................................641
27.3.2. Класс QBitmap.............................................................................................................643
27.3.3. Класс Qlmage..............................................................................................................644
27.3.4. Класс Qlcon.................................................................................................................647
Глава 28. Графическая сцена.........................................................................................649
28.1. Класс QGraphicsScene: сцена................................................................................................ 649
28.1.1. Настройка сцены....................................................................................................... 650
28.1.2. Добавление и удаление графических объектов.................................................... 650
28.1.3. Добавление компонентов на сцену......................................................................... 651
28.1.4. Поиск объектов.......................................................................................................... 652
28.1.5. Управление фокусом ввода......................................................................................653
28.1.6. Управление выделением объектов.......................................................................... 654
28.1.7. Прочие методы и сигналы........................................................................................654
28.2. Класс QGraphicsView: представление..................................................................................656
28.2.1. Настройка представления.........................................................................................656
28.2.2. Преобразования между координатами представления и сцены......................... 657
28.2.3. Поиск объектов...........................................................................................................658
28.2.4. Преобразование системы координат...................................................................... 658
28.2.5. Прочие методы...........................................................................................................659
28.3. Класс QGraphicsItem: базовый класс для графических объектов....................................660
28.3.1. Настройка объекта..................................................................................................... 660
28.3.2. Выполнение преобразований...................................................................................662
28.3.3. Прочие методы...........................................................................................................663
28.4. Графические объекты.............................................................................................................664
28.4.1. Линия........................................................................................................................... 664
28.4.2. Класс QAbstractGraphicsShapeltem......................................................................... 664
28.4.3. Прямоугольник...........................................................................................................665
28.4.4. Многоугольник...........................................................................................................665
28.4.5. Эллипс......................................................................................................................... 665
28.4.6. Изображение...............................................................................................................666
28.4.7. Простой текст.............................................................................................................667
28.4.8. Форматированный текст...........................................................................................667
28.5. Группировка объектов........................................................................................................... 668
28.6. Эффекты.................................................................................................................................. 669
28.6.1. Класс QGraphicsEffect............................................................................................... 669
28.6.2. Тень.............................................................................................................................. 669
28.6.3. Размытие.....................................................................................................................670
28.6.4. Изменение цвета........................................................................................................ 671
28.6.5. Изменение прозрачности..........................................................................................671
28.7. Обработка событий.................................................................................................................672
28.7.1. События клавиатуры................................................................................................. 672
28.7.2. События мыши...........................................................................................................673
28.7.3. Обработка перетаскивания и сброса....................................................................... 675
28.7.4. Фильтрация событий................................................................................................. 677
28.7.5. Обработка изменения состояния объекта...............................................................677
Глава 29. Диалоговые окна............................................................................................679
29.1. Пользовательские диалоговые окна.....................................................................................679
29.2. Класс QDialogButtonBox....................................................................................................... 681
29.3. Класс QMessageBox................................................................................................................684
29.3.1. Основные методы и сигналы....................................................................................685
29.3.2. Окно информационного сообщения....................................................................... 688
29.3.3. Окно подтверждения................................................................................................. 688
29.3.4. Окно предупреждающего сообщения..................................................................... 689
29.3.5. Окно критического сообщения................................................................................689
29.3.6. Окно сведений о программе.....................................................................................690
29.3.7. Окно сведений о библиотеке Q t.............................................................................. 690
29.4. Класс QInputDialog.................................................................................................................691
29.4.1. Основные методы и сигналы....................................................................................692
29.4.2. Окно для ввода строки.............................................................................................. 694
29.4.3. Окно для ввода целого числа................................................................................... 694
29.4.4. Окно для ввода вещественного числа..................................................................... 695
29.4.5. Окно для выбора пункта из списка......................................................................... 696
29.4.6. Окно для ввода большого текста............................................................................. 696
29.5. Класс QFileDialog...................................................................................................................697
29.5.1. Основные методы и сигналы....................................................................................698
29.5.2. Окно для выбора каталога........................................................................................700
29.5.3. Окно для открытия файлов.......................................................................................701
29.5.4. Окно для сохранения файла......................................................................................702
29.6. Окно для выбора цвета...........................................................................................................704
29.7. Окно для выбора шрифта...................................................................................................... 705
29.8. Окно для вывода сообщения об ошибке............................................................................. 706
29.9. Окно с индикатором хода процесса.....................................................................................706
29.10. Создание многостраничного мастера................................................................................708
29.10.1. Класс QWizard...........................................................................................................708
29.10.2. Класс QWizardPage................................................................................................. 711
Глава 30. Создание SDI- и M D I-прилож ений.................................................................714
30.1. Создание главного окна приложения......................... 714
30.2. Меню.........................................................................................................................................718
30.2.1. Класс QMenuBar........................................................................................................ 719
30.2.2. Класс QMenu...............................................................................................................720
30.2.3. Контекстное меню компонента................................................................................722
30.2.4. Класс QAction..............................................................................................................723
30.2.5. Объединение переключателей в группу................................................................. 726
30.3. Панели инструментов.............................................................................................................727
30.3.1. Класс QToolBar...........................................................................................................728
30.3.2. Класс QToolButton..................................................................................................... 729
30.4. Прикрепляемые панели..........................................................................................................730
30.5. Управление строкой состояния............................................................................................732
30.6. MDI-приложения....................................................................................................................733
30.6.1. Класс QMdiArea..........................................................................................................733
30.6.2. Класс QMdiSubWindow.............................................................................................. 736
30.7. Добавление значка приложения в область уведомлений................................................. 737
Глава 31. Мультимедиа...........................................................................................................739
31.1. Класс QMediaPlayer...............................................................................................................739
31.2. Класс QVideoWidget................................................................................................................748
31.3. Класс QMediaPlaylist..............................................................................................................751
31.4. Запись звука............................................................................................................................ 754
31.4.1. Класс QAudioRecorder............................................................................................... 755
31.4.2. Класс QAudioEncoderSettings........................................................ 757
31.5. Класс QSoundEffect.................................................................................................................761
Глава 32. Печать документов........................................................................................764
32.1. Основные средства печати.................................................................................................... 764
32.1.1. Класс QPrinter.............................................................................................................764
32.1.2. Вывод на печать......................................................................................................... 768
32.1.3. Служебные классы.................................................................................................... 773
32.1.3.1. Класс QPageSize........................................................................................ 774
32.1.3.2. Класс QPageLayout................................................................................... 776
32.2. Задание параметров принтера и страницы......................................................................... 777
32.2.1. Класс QPrintDialog.................................................................................................... 778
32.2.2. Класс QPageSetupDialog...........................................................................................779
32.3. Предварительный просмотр документов перед печатью................................................. 781
32.3.1. Класс QPrintPreviewDialog.......................................................................................781
32.3.2. Класс QPrintPreviewWidget.......................................................................................784
32.4. Получение сведений о принтере. Класс QPrinterlnfo........................................................786
32.5. Экспорт в формат PDF. Класс QPdjWriter................................. 788
Заключение......................................................................................................................... 791
Приложение. Описание электронного архива.......................................................... 792
Предметный указатель......................... 793