Python 3 и PyQt 6. Разработка приложений

Python 3 и PyQt 6. Разработка приложений

Python 3 и PyQt 6. Разработка приложений

Автор: Владимир Александрович Дронов , Николай Анатольевич Прохоренок
Дата выхода: 2023
Издательство: «БХВ-Петербург»
Количество страниц: 834
Размер файла: 58,3 МБ
Тип файла: PDF
Добавил: codelibs
 Проверить на вирусы  Дополнительные материалы 

Предисловие ................................................................................................................................... 15
Python .............................................................................................................................................. 15
PyQt .................................................................................................................................................. 16
Использованное ПО ....................................................................................................................... 16
Типографские соглашения ............................................................................................................ 16
ЧАСТЬ 1. ОСНОВЫ ЯЗЫКА PYTHON ................................................................................................. 19
Глава 1. Первые шаги ................................................................................................................... 21
1.1. Установка Python .................................................................................................................... 21
1.2. Интерактивный режим Python. Утилита IDLE ..................................................................... 24
1.3. Введение в Руthоn-программирование ................................................................................. 25
1.4 .. Принципы написания Руthоn-программ ............................................................................... 27
1.4.1. Комментарии и строки документирования ................................................................ 30
1.4.2. Кодировки, поддерживаемые Python .......................................................................... 31
1.4.3. Подготовка Руthоn-программ для выполнения в UNIX ............................................ 31
1.5. Дополнительные возможности IDLE ........................................................................... ......... 32
1.6. Вывод данных ......................................................................................................................... 33
1.7. Ввод данных ............................................................................................................................ 35
1.8. Утилита pip: установка дополнительных библиотек ........................................................... 37
1.9. Доступ к документации .......................................................................................................... 42
1.1 О. Компиляция Руthоn-файлов ................................................................................................. 44
Глава 2. Переменные и типы данных ............................................................................................... 46
2.1. Переменные ............................................................................................................................ .46
2.2. Типы данных. Понятие объекта и ссылки ............................................................................ 47
2.3. Присваивание значений переменным ................................................................................... 50
2.4: Проверка типа данных ............................................................................................................ 52
2.5. Преобразование типов данных .............................................................................................. 53
2.6. Удаление переменных ............................................................................................................ 56
Глава 3. Операторы ...................................................................................................................... 57
3 .1. Математические операторы ................................................................................................... 57
3.2. Двоичные операторы .............................................................................................................. 59
3.3. Операторы для работы с последовательностями ....................................................................... 60
3.4. Операторы присваивания ....................................................................................................... 61
3.5. Пустой оператор ...................................................................................................................... 63
3.6. Приоритет операторов ........................................................................................................... 63
Глава 4. Инструкции ветвления, выбора и циклы ............................................................................. 65
4.1. Операторы сравнения ............................................................................................................. 66
4.2. Инструкция ветвления ............................................................................................................ 68
4.3. Инструкция выбора ............................................................................................................... 71
4.4. Цикл перебора последовательности ..................................................................................... 77
4.5. Цикл с условием ..................................................................................................................... 78
4.6. Оператор continue: переход на следующую итерацию цикла ............................................. 79
4.7. Оператор break: прерывание цикла ....................................................................................... 79
4.8. Оператор присваивания в составе инструкции .................................................................... 80
Глава 5. Числа ............................................................................................................................. 82
5 .1. Запись чисел ............................................................................................................................ 82
5.2. Обработка чисел ..................................................................................................................... 84
5 .3. Математические функции ...................................................................................................... 87
5.4. Генерирование случайных чисел ........................................................................................... 89
Глава 6. Строки и двоичные данные ............................................................................................. 92
6.1. Создание строк ........................................................................................................................ 92
6.1.1. Специальные символы ................................................................................................. 94
6.1.2. Необрабатываемые строки .......................................................................................... 95
6.2. Операции над строками .......................................................................................................... 96
6.3. Форматирование строк ......................................................................................................... 98
6.4. Meтoд format() ....................................................................................................................... 104
6.4.1. Форматируемые строки .............................................................................................. 108
6.5. Функции и методы для работы со строками ...................................................................... 109
6.6. Настройка локали ................................................................................................................. 112
6.7. Изменение регистра символов .............................................................................................. 113
6.8. Функции для работы с символами ...................................................................................... 114
6.9. Поиск и замена в строке ....................................................................................................... 114
6.1 О. Проверка содержимого строки .......................................................................................... 118
6.11. Двоичные данные типа bytes .............................................................................................. 121
6.12. Двоичные данные типа bytearray ...................................................................................... 125
6.13. Сериализация и десериализация значений ...................................................................... 128
6.14. Хеширование значений ...................................................................................................... 129
Глава 7. Регулярные выражения ................................................................................................ 131
7 .1. Синтаксис регулярных выражений ..................................................................................... 131
7.2. Поиск первого совпадения с шаблоном ............................................................................... 140
7.3. Поиск всех совпадений с шаблоном ................................................................................... 145
7.4. Замена в строке .................................................................................................................... 146
7.5. Прочие функции и методы ................................................................................................... 148
Глава 8. Списки., кортежи, множества и диапазоны ....................................................................... 150
8.1. Создание списков .................................................................................................................. 150
8.2. Операции над списками ...................................................................................................... 152
8.3. Многомерные списки ........................................................................................................... 155
8.4. Перебор списков ................................................................................................................... 155
8.5. Генераторы списков и выражения-генераторы .................................................................. 156
8.6. Функции map(), zip(), filter() и reduce() ............................................................................... 158
8. 7. Добавление и удаление элементов списка .......................................................................... 161
8.8. Поиск элемента в списке и получение сведений об элементах списка .................................. 163
8.9. Переворачивание и перемешивание списка ....................................................................... 164
8.10. Выбор элементов списка случайным образом ................................................................... 165
8.11. Сортировка списка .............................................................................................................. 166
8.12. Заполнение списка числами ............................................................................................... 168
8.13. Преобразование списка в строку ...................................................................................... 168
8.14. Кортежи ............................................................................................................................... 169
8.15. Множества, изменяемые и неизменяемые ........................................................................ 170
8.16. Диапазоны .................................. ........................................................................................ 175
8.17. Модуль itertools ................................................................................................................... 177
8.17 .1. Генерирование неопределенного количества значений ........................................................ 177
8.17 .2. Генерирование комбинаций значений ................................................................................. 178
8.17.3. Фильтрация элементов последовательности .......................................................................... 180
8.17.4. Прочие функции .................................................................................................................. 181
Глава 9. Словари ........................................................................................................................... 185
9 .1. Создание словаря .................................................................................................................. 185
9.2. Операции над словарями ...................................................................................................... 187
9.3. Перебор элементов словаря ................................................................................................. 189
9.4. Методы и функции для работы со словарями ......................................................................... 190
9.5. Генераторы словарей ............................................................................................................ 193
Глава 10. Работа с датой и временем ......................................................................................... 194
10.1. Получение текущих даты и времени ................................................................................. 194
10.2. Форматирование даты и времени ...................................................................................... 196
10.3. Приостановка выполнения программы ............................................................................ 198
10.4. Значения даты и времени ........................................................................................... 198
10.4.1. Временнь1е промежутки ......................................................................................... 198
10.4.2. Значения даты ......................................................................................................... 201
10.4.3. Значения времени ................................................................................................... 204
10.4.4. Временнь1е отметки ................................................................................................ 207
10.5. Вывод календаря ..................................................................................................... 213
10.5.1. Вывод календаря в текстовом виде ...................................................................... 213
10.5.2. Вывод календаря в формате НТМL ...................................................................... 215
10.5.3. Другие полезные функции ...................................................................................... 217
10.6. Измерение времени выполнения фрагментов кода ......................................................... 220
Глава 11. Функции ...................................................................................................... 222
11.1. Определение и вызов функции .............................................................................. 222
11.1.1. Расположение определений функций ................................................................... 224
11. 1 .2. Локальные и глобальные переменные .................................................................. 225
11.1.3. Позиционные и именованные параметры ............................................................ 228
11.1.4. Необязательные параметры ................................................................................... 230
11.1.5. Произвольное количество параметров .................................................................. 231
11.1.6. Распаковка последовательностей и отображений ............................................... 233
11.6.7. Функция как значение. Функции обратного вызова ............................................ 233
11.2. Анонимные функции .......................................................................................................... 234
11.3. Функции-генераторы .......................................................................................................... 236
11.4. Декораторы функций .......................................................................................................... 237
11.5. Рекурсия .............................................................................................................................. 239
11.6. Вложенные функции ......................................................................................................... 240
11.7. Аннотации функций ........................................................................................................... 242
Глава 12. Модули, пакеты и импорт ............................................................................................ 243
12.1. Импорт модуля целиком .................................................................................................... 243
12.2. Импорт отдельных идентификаторов ............................................................................... 246
12.2.1. Указание идентификаторов, доступных для импорта ........................................................ 248
12.2.2. Управление доступом к идентификаторам ........................................................................ 248
12.3. Пути поиска модулей ......................................................................................................... 249
12.4. Перезагрузка модулей ........................................................................................................ 251
12.5. Пакеты ................................................................................................................................. 252
Глава 13. Объекты и классы .......................................................................................................... 256
13 .1. Определение классов, создание объектов и работа с ними ..................................................... 256
13.2. 'Атрибуты класса ................................................................................................................. 259
13 .3. Конструкторы и деструкторы ............................................................................................ 260
13.4. Наследование ...................................................................................................................... 261
13 .4.1. Множественное наследование ........................................................................................... 263
13.4.1.1. Примеси и их использование .......................................................................................... 265
13.5. Специальные методы .......................................................................................................... 266
13.6. Перегрузка операторов ....................................................................................................... 269
13.7. Статические методы и методы класса ................................................................................... 271
13.8. Абстрактные методы .......................................................................................................... 272
13.9. Закрытые атрибуты и методы ............................................................................................ 273
13.10. Свойства ........................................................................................................................ 274
13 .11. Декораторы классов ......................................................................................................... 276
Глава 14. Исключения и их обработка ........................................................................................ 278
14.1. Обработчики исключений ................................................................................................. 279
14.2. Обработчики контекстов .................................................................................................... 283
14.3. Классы встроенных исключений ........................................................................................ 285
14.4. Генерирование исключений ............................................................................................... 287
14.5. Пользовательские исключения .......................................................................................... 289
14.6. Проверочная инструкция ................................................................................................... 290
Глава 15. Итераторы, контейнеры и перечисления ........................................................................ 292
15.1. Итераторы ........................................................................................................................... 292
15.2. Контейнеры ......................................................................................................................... 293
15 .2.1, Контейнеры-последовательности ....................................................................................... 293
15.2.2. Контейнеры-отображения .................................................................................................. 295
15.3. Перечисления ...................................................................................................................... 296
Глава 16. Работа с файлами и каталогами ...................................................................................... 302
16.1. Открытие файлов ................................................................................................................ 302
16.1.1. Указание путей к файлам и каталогам .................................................................. 305
16.1.2. Текущий рабочий каталог ...................................................................................... 306
16.2. Чтение и запись данных: объектные инструменты .......................................................... 307
16.3. Чтение и запись данных: низкоуровневые инструменты ................................................ 313
16.4. Файлы в памяти ................................................................................................................. 315
16.5. Задание прав доступа к файлам и каталогам .................................................................... 319
16.6. Работа с файлами ................................................................................................................ 321
16.7. Работа с путями .................................................................................................................. .325
16.8. Перенаправление ввода/вывода ......................................................................................... 326
16.9. Сохранение объектов в файлах .......................................................................................... 328
16.10. Работа с каталогами .......................................................................................................... 331
16.10.1. Функция scandirO ................................................................................................. 335
16.11. Исключения, генерируемые файловыми операциями .................................................. .337
Глава 17. Работа с механизмами Windows .................................................................................... 338
17 .1. Работа с реестром .............................................................................................................. .338
17.1.1. Открытие и закрытие ветвей реестра .................................................................... 339
17 .1.2. Чтение и запись данных реестра ........................................................................... 340
17 .1.3. Перебор элементов и вложенных ветвей реестра ....................................................... 343
17.2. Получение путей к системным каталогам ........................................................................ 344
17.3. Создание ярлыков .............................................................................................................. 345
ЧАСТЬ 11. БИБЛИОТЕКА РуQt6 ................................................................................................... 347
Глава 18. Введение в РуQt6 ....................................................................................................... 349
18.1. Установка РуQt6 ................................................................................................................ 349
18.2. Первая оконная программа ............................................................................................... .349
18.3. Структура РуQt-программы ............................................................................................... 350
18.4. ООП-стиль создания окна .................................................................................................. 352
18.5. Создание окон с помощью программы Qt Designer ........................................................ 356
18.5.1. Создание окон ......................................................................................................... 356
18.5.2. Использование UI-файла в программе ................................................................ .359
18.5.3. Преобразование Ш-файла в модуль Python ............ , ........................................... .361
18.6. Модули PyQt 6 .................................................................................................................... 362
18.7. Управление циклом обработки событий .......................................................................... 363
18.8. Многопоточные программы .............................................................................................. 365
18.8.1. Потоки ..................................................................................................................... 365
18.8.2. Управление потоками ............................................................................................ 368
18.8.3. Очереди ................................................................................................................... 372
18.8.4. Блокировщики и автоблокировщики .................................................................... 376
18.9. Вывод заставки .......................................... : ........................................................................ 379
Глава 19. Окна ............................................................................................................. 382
19.1. Создание и вывод окон ...................................................................................................... .382
19.1.1. Типы окон ............................................................................................................... 383
19.2. Размеры окон и управление ими ....................................................................................... 384
19.3. Местоположение окна и управление им ................................................ : .......................... 387
19.4. Классы, задающие координаты и размеры ....................................................................... 390
19.4.1. Класс QPoint: координаты точки .................................................................................... 390
19.4.2. Класс QSize: размеры прямоугольной области ................................................................ 391
19.4.3. Класс QRect: координаты и размеры прямоугольной области ........................................... 393
19.5. Разворачивание и сворачивание окон ............................................................................... 399
19 .6. Управление прозрачностью о.кна ...................................................................................... 401
19.7. Модальные окна ......................................................................................................... ; ....... .401
19.8. Смена значка окна ........................................................................................................ , ..... 403
19.9. Изменение цвета фона окна .............................................................................................. .404
19.10. Вывод изображения в качестве фона ............................................................................. .405
19 .11. Окна произвольной формы ............................................................................................. .406
19.12. Всплывающие и расширенные подсказки ..................................................................... .408
19.13. Программное закрытие окна ............................................................................................ 409
19.14. Использование таблиц стилей CSS для оформления окон ............................................ .409
Глава 20. Обработка сигналов и событий ............................................................................... 414
20.1. Назначение обработчиков сигналов ................................................................................. .414
20.1.1. Слоты:. .................................................................................................................... .417
20.1.2. Передача данных в обработчик сигнала ....................................................................... 418
20.2. Блокировка и удаление обработчиков сигналов ................... , ......................................... .419
20.3. Генерирование сигналов ............................................................................... , ................... .421
20.4. Пользовательские сигналы ................ : ............................................................................... 421
20.5. Использование таймеров .................................................................................................... 423
20.6. Обработка всех событий ................................ : .................................................................. .426
20.7. События окна ............................................................................ : ......................................... 429
20.7.1. Изменение состояния окна ................................................................................... .429
20.7.2. Изменение местоположения и размеров окна ..................................................... .430
20.7.3. Перерисовка окна или его части .......................................................................... .431
20.7.4. Предотвращение закрытия окна ........................................................................... .431
20.8. События клавиатуры .......................................................................................................... 432
20.8.1. Управление фокусом ввода ................................................................................... 432
20.8.2. Назначение клавиш быстрого доступа ................................................................ .435
20.8.3. Нажатие и отпускание клавиш .............................................................................. 437
20.9. События мыши .................................................................................................................... 439
20.9.1. Нажатие и отпускание кнопок мыши ................................................................... .439
20.9.2. Перемещение курсора мыши .............................................................................. , .. 440
20.9.3. Наведение и увод курсора мыши ......................................................................... .441
20.9.4. Прокрутка колесика мыши ................................................................................... .441
20.9.5. Изменение курсора мыши ...................................................................................... 442
20.10. Операция перетаскивания (drag & drop) ........................................................................ .443
20.10.1. Запуск перетаскивания ........................................................................................ .443
20.10.1.1. Задание перетаскиваемых данных ...................................................................... .445
20.10.2. Обработка перетаскивания и сброса ............................................................................... .446
20.11. Работа с буфером обмена ................................................................................................ .448
20.12. Фильтрация событий ........................................................................................................ 449
20.13. Генерирование событий ................................................................................................... 450
20.14. Пользовательские события ............................................................................................. .450
Глава 21. Размещение компонентов в окнах. Контейнеры ............................................................ 451
21.1. Абсолютное позиционирование ........................................................................................ 451
21.2. Контейнеры-стопки ............................................................................................................ 452
21.3. Контейнер-сетка ................................................................................................................. .455
21.4. Контейнер-форма ................................................................................................................ 457
21.5. Стеки ..................................................................................................................... : .............. .460
21.6. Управление размерами компонентов ............................................................................... .461
21.7. Группа .................................................................................................................................. 462
21.8. Панель с рамкой ................................................................................................................. .464
21.9. Панель с вкладками ............................................................................................................ 465
i1.10. Аккордеон ......................................................................................................................... 469
21.11. Панель с изменяемыми областями .................................................................................. 471
21.12. Прокручиваемая панель ................................................................................................... 473
Глава 22. Основные компоненты ................................................................................................... 475
22.1. Надпись ............................................................................................................................... 475
22.2. Кнопка ................................................................................................................................ 477
22.3. Переключатель .................................................................................................................... 479
22.4. Флажок ................................................................................................................................ 480
22.5. Поле ввода ........................................................................................................................... 480
22.5.1. Основные методы и сигналы .................................................................................. 481
22.5.2. Ввод данных по маске ........................................................................................... .484
22.5.3. Контроль ввода с помощью валидаторов ............................................................. 485
22.6. Область редактирования .................................................................................................... 486
22.6.1. Основные методы и сигналы ................................................................................ .486
22.6.2. Задание параметров области редактирования .................................................... .488
22.6.3. Указание параметров текста и фона ..................................................................... 490
22.6.4. Класс QTextDocument ............................................................................................. 491
22.6.5. Класс QTextCursor ................................................................................................ .494
22. 7. Текстовый ·браузер .............................................................................................................. 497
22.8. Поля для ввода целых и вещественных чисел .................................................................. 499
22.9. Поля для ввода даты и времени .......................................................................................... 501
22.10. Календарь .......................................................................................................................... 504
22.11. Семисегментный индикатор ............................................................................................ 506
22.12. Индикатор процесса ......................................................................................................... 507
22.13. Шкала с ползунком ........................................................................................................... 508
22.14. Круговая шкала с ползунк-ом ........................................................................................... 510
22.15. Полоса прокрутки ............................................................................................................ 511
22.16. Веб-браузер ....................................................................................................................... 511
Глава 23. Списки и таблицы ......................................................................................................... 516
23 .1. Раскрывающийся список. ................................................................................................... 516
23 .1.1. Добавление, изменение и удаление элементов .................................................... 516
23.1.2. Изменение параметров списка .............................................................................. 517
23.1.3. Поиск элементов ..................................................................................................... 518
23.1.4. Сигналы ................................................................................................................... 519
23.2. Список для выбора шрифта ............................................................................................... 519
23.3. Роли элементов ................................................................................................................... 520
23.4. Модели ................................................................................................................................. 521
23.4.1. Доступ к данным внутри модели .......................................................................... 521
23.4.2. Класс QStringListModel .......................................................................................... 523
22.4.3. Класс QStandardltemModel .................................................................................... 524
23.4.4. Класс QStandardltem .............................................................................................. 528
23.5. Представления .................................................................................................................... 531
23.5.1. Класс QAbstractltemView ........................................................................................ 532
23.5.2. Простой список ....................................................................................................... 535
23.5.3. Таблица ................................................................................................................... 537
23.5.4. Иерархический список ........................................................................................... 539
23.5.5. Управление заголовками строк и столбцов .......................................................... 541
23.6. Управление выделением элементов .................................................................................. 544
22.7. Промежуточные модели ..................................................................................................... 546
23.8. Использование делегатов ................................................................................................... 547
Глава 24. Работа с базами данных ............................................................................................... 551
24.1. Соединение с базой данных .................................................... ··········································551
24.2. Получение сведений о структуре таблиц .......................................................................... 554
24.2.1. Получение сведений о таблицах ............................................................................ 554
24.2.2. Получение сведений о полях таблиц .................................................................... 555
24.2.3. Получение сведений о ключевом индексе ................................... ························556
24.2.4. Получение сведений об ошибке ............................................................................ 556
24.3. Выполнение SQL-запросов и получение их результатов ................................................ 557
24.3.1. Выполнение запросов ............................................................................................ 557
24.3.2. Обработка результатов выполнения запросов ..................................................... 560
24.3.3. Очистка запроса ............................................................................................. : ........ 562
24.3.4. Получение служебных сведений о запросе .......................................................... 563
24.4. Модели, связанные с данными .......................................................................................... 563
24.4.1. Модель, связанная с SQL-запросом ...................................................................... 563
24.4.2. Модель, связанная с таблицей .............................................................................. 565
24.4.3. Модель, поддерживающая межтабличные связи ................................................. 570
24.4.4. Использование связанных делегатов .................................................................... 573
Глава 25. Работа с графикой ..................................................................................... 575
25.1. Вспомогательные классы ................................................................................................... 575
25.1.1. Класс QColor: цвет ................................................................................................. 575
25.1.2. Класс QPen: перо .................................................................................................... 579
25.1.3. Класс QBrush: кисть ............................................................................................... 580
25.1.4.. Класс QLine: линия .............................................. :. ................................................. 581
24.1.5. Класс QPolygQn: многоугольник ........................................................................... 582
25.1.6. Класс QFont: шрифт ............................................................................................... 584
25.2. Класс QPainter .................................................................................................................... 586
25.2.1. Рисование линий и фигур ...................................................................................... 587
25.2.2. Вывод текста ........................................................................................................... 589
25.2.3. Вывод изображений ............................................................................................... 590
25.2.4. Преобразование систем координат ....................................................................... 592
25.2.5. Сохранение команд рисования в файл .................................................................. 593
25.3. Работа с растровыми изображениями ............................................................................... 594
25.3.1. Класс QPixmap ........................................................................................................ 594
25.3.2. Класс QBitmap ........................................................................................ .· ................ 597
25.3.3. Класс Qlmage .......................................................................................................... 598
25.3.4. Класс Qlcon ............................................................................................................. 601
Глава 26. Графическая сцена .................................................................................... 603
26.1. Графическая сцена .............................................................................................................. 603
26.1.1. Настройка графической сцены .............................................................................. 603
26.1.2. Добавление и удаление графических объектов ................................................... 604
26.1.3. Добавление компонентов на сцену ....................................................................... 605
26.1.4. Поиск графических объектов ................................................................................ 605
26.1.5. Управление фокусом ввода ................................................................................... 607
26.1.6. Управление выделением объектов ........................................................................ 607
26.1.7. Прочие методы и сигналы ..................................................................................... 608
26.2. Графическое представление ................................................................. : ............................ 609
26.2.1. Настройка графического представления .............................................................. 609
26.2.2. Преобразования между координатами представления и сцены ............ : ............ 611
26.2.3. Поиск объектов ....................................................................................................... 612
26.2.4. Преобразование системы координат .................................................................... 612
26.2.5. Прочие методы ....................................................................................................... 613
26.3. Графические объекты ......................................................................................................... 614
26.3.1. Класс QGraphicsltem: базовый класс для графических объектов ...................... 614
26.3.1.1. Настройка графического объекта ........................................................... 614
26.3.1.2. Выполнение преобразований ..... ;····························································616
26.3.1.3. Прочие методы ........................................................................................ 617
26.3.2. Готовые графические объекты .............................................................................. 618
26.3.2.1. Линия ........................................................................................................ 618
26.3 .2.2. Класс QAbstractGraphicsShapeltem ........................................................ 618
26.3.2.3. Прямоугольник ........................................................................................ 619
26.3.2.4. Многоугольник ........................................................................................ 619
26.3.2.5. Эллипс ...................................................................................................... 619
26.3.2.6. Изображение ............................................................................ : ............... 620
26.3.2.7. Простой текст ........................................................................................... 621
26.3.2.8. Форматированный текст ......................................................................... 621
26.4. Группировка объектов ........................................................................................................ 622
26.5. Эффекты .............................................................................................................................. 623
26.5.1. Класс QGraphicsEjfect ............................................................................................ 623
26.5.2. Тень .......................................................................................................................... 624
26.5.3. Размытие ................................................................................................................. 625
26.5.4. Изменение цвета ...................................................................................................... 625
26.5.5. Изменение прозрачности ....................................................................................... 625
26.6. Обработка событий ............................................................................................................. 626
26.6.1. События клавиатуры .............................................................................................. 626
26.6.2. События мыши ....................................................................................................... 627
26.6.3. Обработка перетаскивания и сброса ..................................................................... 630
26.6.4. Фильтрация событий ....................................... : ...................................................... 631
26.6.5. Обработка изменения состояния объекта ............................................................. 631
Глава 27. Диалоговые окна ...............................................· . ....................................... 634
27.1. Пользовательские диалоговые окна .................................................................................. 634
27.2. Класс QDialogButtonBox ........... : ........................................................................................ 636
27.3. Класс QMessageBox ............................................................................................................ 639
27.3.1. Основные методы и сигналы ................................................................................. 640
27.3.2. Окно информационного сообщения ..................................................................... 642
27.3.3. Окно подтверждения .............................................................................................. 643
27.3.4. Окно предупреждающего сообщения ................................................................... 644
27.3.5. Окно критического сообщения ............................................................................. 644
27.3.6. Окно сведений о программе ........... , ...................................................................... 645
27.3.7. Окно сведений о фреймворке Qt .......................... , ................................................ 645
27.4. Класс QlnputDialog ............................................................................................................. 646
27.4.1. Основные методы и сигналы ................................................................................. 647
27.4.2. Окно ДJIЯ ввода строки ........................................................................................... 649
27.4.3. Окно ДJIЯ ввода целого числа ................................................................................. 649
27.4.4. Окно ДJIЯ ввода вещественного числа ................................................................... 650
27.4.5. Окно для выбора пункта из списка .............................................. , ........................ 651
27.4.6. Окно ДJIЯ ввода большого текста ........................................................................... 651
27.5. Класс QFileDialog ............................................................................................................... 652
27.5.1. Основные методы и сигналы ................................................................................. 653
27.5.2. Окно ДJIЯ выбора каталога ..................................................................................... 655
27.5.3. Окно ДJIЯ открытия файлов ......... ,. .......................................................................... 656
27.5.4. Окно ДJIЯ сохранения файла ................................................................................... 658
27.6. Окно ДJIЯ выбора цвета ....................................................................................................... 659
27.7. Окно ДJIЯ выбора шрифта .................................................................................................... 660
27.8. Окно ДJIЯ вывода сообщения об ошибке ...... :. ................................................................... 661
27.9. Окно с индикатором хода процесса ...................... .· ........................................................... 662
27.10. Создание многостраничного мастера ............................................................................. 663
27.10.1. Класс QWizard ....................................................................................................... 663
27.10.2. Класс QWizardPage .............................................................................................. 667
Глава 28. Создание SDI- и МDI-программ ............................................................. 670
28.1. Главное окно программы ................................................................................................... 670
28.2. Меюо и действия ................................................................................................................ 675
28.2.1. Класс QMenuBar ..................................................................................................... 675
28.2.2. Класс QMenu ........................................................................................................... 676
28.2.3. Контекстное меюо компонента ............................................................................. 679
28.2.4. Класс QAction .......................................................................................................... 680
28.2.5. Объединение действий-переключателей в группу ............................................... 683
28.3. Панели инструментов ......................................................................................................... 684
28.3.1. Класс QToo/Bar ............... : ....................................................................................... 685
28.3.2. Класс QToo/Button .................................................................................................. 686
28.4. Прикрепляемые панели ...................................................................................................... 688
28.5. Строка состояния ................................................................................................................ 689
28.6. МDI-программы .................................................................................................................. 690
28.6.1. Класс QMdiArea ...................................................................................................... 690
28.6.2. Класс QMdiSubWindow.: ................. : ....................................................................... 693
28.7. Добавление значка программы в область уведомлений .................................................. 694
Глава 29. Мультимедиа .............................................................................................. 696
29.1. Воспроизведение мультимедиа .............................................................................. ..' ......... 696
29.1.1. Мультимедийный проигрыватель ......................................................................... 696
29.1.2. Звуковой выход. Воспроизведение звука ............................................................. 699
29 .1.3. Метаданные мультимедийного источника ........................................................... 704
29.1.4. Видеопанель. Воспроизведение видео ................................................................. 707
29.2. Запись мультимедиа ........................................................................................................... 709
29.2.1. Транспорт ................................................................................................................ 709
29.2.2. Звуковой вход ......................................................................................................... 710
29.2.3. Кодировщик звука и видео .................................................................................... 710
29.2.4. Указание форматов кодирования. Запись звука .................................................. 712
29.2.5. Камера. Запись видео ............................................................................................. 716
29.2.6. Кодировщик статичных изображений. Захват фото ............................................ 720
29.3. Воспроизведение звуковых эффектов ............................................................................... 722
Глава 30. Печать документов .................................................................................. 726
30.1. Основные средства печати ................................................................................................. 726
30.1.1. Класс QPrinter ......................................................................................................... 726
30.1.2. Вывод на печать ...................................................................................................... 729
30.1.3. Служебные классы ................................................................................................. 735
30.1.3.1. Класс_ QPageSize ............... , ....................................................................... 735
30.1.3.2. Класс QPageLayout .................................................................................. 737
30.2. Задание параметров принтера и страницы ....................................................................... 739
30.2.1. Класс QPrintDialog ................................................................................................. 739
30.2.2. Класс QPageSetupDialog ........................................................................................ 740
30.3. Предварительный просмотр .............................................................................................. 742
30.3.1. Класс QPrintPreviewDialog .................................................................................... 742
30.3.2. Класс QPrintPreviewWidget .................................................................................... 745
30.4. Класс QPrinterlnfo: получение сведений об устройстве печати ..................................... 747
30.5. Класс QPdfWriter: экспорт в формат PDF ........................................................................ 749
Глава 31. Сохранение настроек программ ............................................................. 752
31. 1. Создание объекта класса QSettings ................................................................................... 7 5 2
31.2. Запись и чтение данных ..................................................................................................... 753
31.2.1. Базовые средства записи и чтения данных ........................................................... 753
31.2.2. Группировка сохраняемых значений. Кточи ...................................................... 755
31.2.3. Запись списков ........................................................................................................ 757
31.3. Вспомогателрные методы класса QSettings ...................................................................... 759
31.4. Где хранятся настройки? .................................................................................................... 759
Глава 32. Программа «Судоку» ............................._. .................................................. 761
32.1. Правила судоку ................................................................................................................... 761
32.2. Описание программы «Судоку» ........................................................................................ 762
32.3. Разработка программы ....................................................................................................... 764
32.3 .1. Подготовительные действия .................................................................................. 764
32.3.2. Класс MyLabel: ячейка поля судоку ...................................................................... 764
32.3.3. Класс Widget: поле судоку ..................................................................................... 768
32.3.3.1. Конструктор класса Widget ..................................................................... 769
32.3.3.2. Прочие методы класса Widget ................................................................ 771
32.3.4. Класс MainWindow: основное окно программы ................................................... 775
32.3.4.1. Конструктор клacca MainWindow ........................................................... 776
32.3 .4.2. Остальные методы класса Main Window ................................................. 779
32.3.5. Главный модуль ............................................................ . ......................................... 779
32.3.6. Копирование и вставка головоломок .................................................................... 780
32.3.6.1. Форматы данных ..................................................................................... 780
32.3.6.2. Реализация копирования и вставки в классе Widget ............................. 780
32.3.6.3. Реализация копирования и вставки в классе MainWindow ................... 783
32.3.7. Сохранение и загрузка данных .............................................................................. 787
32.3.8. Печать и предварительный просмотр ................................................................... 789
32.3.8.1. Реализация печати в классе Widget ........................................................ 790
32.3.8.2. Класс PreviewDialog: диалоговое окно Щ)едварительного
просмотра ................................................................................................................ 791
32.3.8.3. Реализация печати в клacce,MainWindow .............................................. 794
Заключение ................................................................................................................... 796
Приложение. Описание электронного архива ....................................................... 797
Предметный указатель .............................................................................................. 798

 Описан язык Python 3: типы данных, операторы, условия ветвления и выбора, циклы, регулярные выражения, функции, классы, работа с файлами и каталогами, взаимодействие с механизмами Windows, часто используемые модули стандартной библиотеки. Особое внимание уделено библиотеке PyQt, позволяющей создавать приложения с графическим интерфейсом. Описаны средства для создания и вывода окон, основных компонентов (кнопок, полей, полей, списков, таблиц, меню, панелей инструментов и др.). Рассмотрена обработка событий и сигналов, разработка многопоточных программ, работа с базами данных, вывод графики, воспроизведение мультимедиа, запись аудио, видео и фото, печать документов, экспорт их в формат Adobe PDF и сохранения настроек программ. Дан пример полнофункционального приложения для создания и решения головоломок судоку. На сайте издательства размещен электронный архив со всеми примерами из книги.

Для программистов

  • Типы данных Python
  • Объектно-ориентированное программирование
  • Работа с файлами и каталогами
  • Взаимодействие с Windows
  • Создание оконных программ
  • Работа с базами данных
  • Мультимедиа
  • Запись звука, видео и фото
  • Печать и экспорт в формат PDF
  • Работающий пример: приложение «Судоку»

Похожее: