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

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

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

Предисловие....16

Python....16

PyQt....17

Использованное ПО....17

Типографские соглашения....17

ЧАСТЬ I. ОСНОВЫ ЯЗЫКА PYTHON....20

Глава 1. Первые шаги....22

1.1. У становка Python....22

1.2. Интерактивный режим Python. Утилита IDLE....25

1.3. Введение в Python-программирование....26

1.4. Принципы написания Python-программ....28

1.4.1. Комментарии и строки документирования....31

1.4.2. Кодировки, поддерживаемые Python....32

1.4.3. Подготовка Python-программ для выполнения в UNIX....32

1.5. Дополнительные возможности IDLE....33

1.6. Вывод данных....34

1.7. Ввод данных....36

1.8. Утилита pip: установка дополнительных библиотек....38

1.9. Доступ к документации....43

1.10. Компиляция Python-файлов....45

Глава 2. Переменные и типы данных....47

2.1. Переменные....47

2.2. Типы данных. Понятие объекта и ссылки....48

2.3. Присваивание значений переменным....51

2.4. Проверка типа данных....53

2.5. Преобразование типов данных....54

2.6. Удаление переменных....57

Глава 3. Операторы....58

3.1. Математические операторы....58

3.2. Двоичные операторы....60

3.3. Операторы для работы с последовательностями....61

3.4. Операторы присваивания....62

3.5. Пустой оператор....64

3.6. Приоритет операторов....64

Глава 4. Инструкции ветвления, выбора и циклы....66

4.1. Операторы сравнения....67

4.2. Инструкция ветвления....69

4.3. Инструкция выбора....72

4.4. Цикл перебора последовательности....78

4.5. Цикл с условием....79

4.6. Оператор continue: переход на следующую итерацию цикла....80

4.7. Оператор break: прерывание цикла....80

4.8. Оператор присваивания в составе инструкции....81

Глава 5. Числа....83

5.1. Запись чисел....83

5.2. Обработка чисел....85

5.3. Математические функции....88

5.4. Генерирование случайных чисел....90

Глава 6. Строки и двоичные данные....93

6.1. Создание строк....93

6.1.1. Специальные символы....95

6.1.2. Необрабатываемые строки....96

6.2. Операции над строками....97

6.3. Форматирование строк....99

6.4. MeTojtformatO....105

6.4.1. Форматируемые строки....109

6.5. Функции и методы для работы со строками....110

6.6. Настройка локали....113

6.7. Изменение регистра символов....114

6.8. Функции для работы с символами....115

6.9. Поиск и замена в строке....115

6.10. Проверка содержимого строки....119

6.11. Двоичные данные типа bytes....122

6.12. Двоичные данные типа bytearray....126

6.13. Сериализация и десериализация значений....129

6.14. Хеширование значений....130

Глава 7. Регулярные выражения....132

7.1. Синтаксис регулярных выражений....132

7.2. Поиск первого совпадения с шаблоном....141

7.3. Поиск всех совпадений с шаблоном....146

7.4. Замена в строке....147

7.5. Прочие функции и методы....149

Глава 8. Списки, кортежи, множества и диапазоны....151

8.1. Создание списков....151

8.2. Операции над списками....153

8.3. Многомерные списки....156

8.4. Перебор списков....156

8.5. Генераторы списков и выражения-генераторы....157

8.6. Функции тар(), zip(), filter() и reduce()....159

8.7. Добавление и удаление элементов списка....162

8.8. Поиск элемента в списке и получение сведений об элементах списка....164

8.9. Переворачивание и перемешивание списка....165

8.10. Выбор элементов списка случайным образом....166

8.11. Сортировка списка....167

8.12. Заполнение списка числами....169

8.13. Преобразование списка в строку....169

8.14. Кортежи....170

8.15. Множества, изменяемые и неизменяемые....171

8.16. Диапазоны....176

8.17. Модуль itertools....178

8.17.1. Генерирование неопределенного количества значений....178

8.17.2. Генерирование комбинаций значений....179

8.17.3. Фильтрация элементов последовательности....181

8.17.4. Прочие функции....182

Глава 9. Словари....186

9.1. Создание словаря....186

9.2. Операции над словарями....188

9.3. Перебор элементов словаря....190

9.4. Методы и функции для работы со словарями....191

9.5. Генераторы словарей....194

Глава 10. Работа с датой и временем....195

10.1. Получение текущих даты и времени....195

10.2. Форматирование даты и времени....197

10.3. Приостановка выполнения программы....199

10.4. Значения даты и времени....199

10.4.1. Временные промежутки....199

10.4.2. Значения даты....202

10.4.3. Значения времени....205

10.4.4. Временные отметки....208

10.5. Вывод календаря....214

10.5.1. Вывод календаря в текстовом виде....214

10.5.2. Вывод календаря в формате HTML....216

10.5.3. Другие полезные функции....218

10.6. Измерение времени выполнения фрагментов кода....221

Глава 11. Функции....223

11.1. Определение и вызов функции....223

11.1.1. Расположение определений функций....225

11.1.2. Локальные и глобальные переменные....226

11.1.3. Позиционные и именованные параметры....229

11.1.4. Необязательные параметры....231

11.1.5. Произвольное количество параметров....232

11.1.6. Распаковка последовательностей и отображений....234

11.6.7. Функция как значение. Функции обратного вызова....234

11.2. Анонимные функции....235

11.3. Функции-генераторы....237

11.4. Декораторы функций....238

11.5. Рекурсия....240

11.6. Вложенные функции....241

11.7. Аннотации функций....243

Глава 12. Модули, пакеты и импорт....244

12.1. Импорт модуля целиком....244

12.2. Импорт отдельных идентификаторов....247

12.2.1. Указание идентификаторов, доступных для импорта....249

12.2.2. Управление доступом к идентификаторам....249

12.3. Пути поиска модулей....250

12.4. Перезагрузка модулей....252

12.5. Пакеты....253

Глава 13. Объекты и классы....257

13.1. Определение классов, создание объектов и работа с ними....257

13.2. Атрибуты класса....260

13.3. Конструкторы и деструкторы....261

13.4. Наследование....262

13.4.1. Множественное наследование....264

13.4.1.1. Примеси и их использование....266

13.5. Специальные методы....267

13.6. Перегрузка операторов....270

13.7. Статические методы и методы класса....272

13.8. Абстрактные методы....273

13.9. Закрытые атрибуты и методы....274

13.10. Свойства....275

13.11. Декораторы классов....277

Глава 14. Исключения и их обработка....279

14.1. Обработчики исключений....280

14.2. Обработчики контекстов....284

14.3. Классы встроенных исключений....286

14.4. Генерирование исключений....288

14.5. Пользовательские исключения....290

14.6. Проверочная инструкция....291

Глава 15. Итераторы, контейнеры и перечисления....293

15.1. Итераторы....293

15.2. Контейнеры....294

15.2.1. Контейнеры-последовательности....294

15.2.2. Контейнеры-отображения....296

15.3. Перечисления....297

Глава 16. Работа с файлами и каталогами....303

16.1. Открытие файлов....303

16.1.1. Указание путей к файлам и каталогам....306

16.1.2. Текущий рабочий каталог....307

16.2. Чтение и запись данных: объектные инструменты....308

16.3. Чтение и запись данных: низкоуровневые инструменты....314

16.4. Файлы в памяти....316

16.5. Задание прав доступа к файлам и каталогам....320

16.6. Работа с файлами....322

16.7. Работа с путями....326

16.8. Перенаправление ввода/вывода....327

16.9. Сохранение объектов в файлах....329

16.10. Работа с каталогами....332

16.10.1. Функция scandirQ....336

16.11. Исключения, генерируемые файловыми операциями....338

Глава 17. Работа с механизмами Windows....339

17.1. Работа с реестром....339

17.1.1. Открытие и закрытие ветвей реестра....340

17.1.2. Чтение и запись данных реестра....341

17.1.3. Перебор элементов и вложенных ветвей реестра....344

17.2. Получение путей к системным каталогам....345

17.3. Создание ярлыков....346

ЧАСТЬ II. БИБЛИОТЕКА PYQT 6....348

Глава 18. Введение в PyQt 6....350

18.1. Установка PyQt 6....350

18.2. Первая оконная программа....350

18.3. Структура PyQt-программы....351

18.4. ООП-стиль создания окна....353

18.5. Создание окон с помощью программы Qt Designer....357

18.5.1. Создание окон....357

18.5.2. Использование UI-файла в программе....360

18.5.3. Преобразование UI-файла в модуль Python....362

18.6. Модули PyQt 6....363

18.7. Управление циклом обработки событий....364

18.8. Многопоточные программы....366

18.8.1. Потоки....366

18.8.2. Управление потоками....369

18.8.3. Очереди....373

18.8.4. Блокировщики и автоблокировщики....377

18.9. Вывод заставки....380

Глава 19. Окна....383

19.1. Создание и вывод окон....383

19.1.1. Типы окон....384

19.2. Размеры окон и управление ими....385

19.3. Местоположение окна и управление им....388

19.4. Классы, задающие координаты и размеры....391

19.4.1. Класс QPoint: координаты точки....391

19.4.2. Класс QSize: размеры прямоугольной области....392

19.4.3. Класс QRect: координаты и размеры прямоугольной области....394

19.5. Разворачивание и сворачивание окон....400

19.6. Управление прозрачностью окна....402

19.7. Модальные окна....402

19.8. Смена значка окна....404

19.9. Изменение цвета фона окна....405

19.10. Вывод изображения в качестве фона....406

19.11. Окна произвольной формы....407

19.12. Всплывающие и расширенные подсказки....409

19.13. Программное закрытие окна....410

19.14. Использование таблиц стилей CSS для оформления окон....410

Глава 20. Обработка сигналов и событий....415

20.1. Назначение обработчиков сигналов....415

20.1.1. Слоты....418

20.1.2. Передача данных в обработчик сигнала....419

20.2. Блокировка и удаление обработчиков сигналов....420

20.3. Генерирование сигналов....422

20.4. Пользовательские сигналы....422

20.5. Использование таймеров....424

20.6. Обработка всех событий....427

20.7. События окна....430

20.7.1. Изменение состояния окна....430

20.7.2. Изменение местоположения и размеров окна....431

20.7.3. Перерисовка окна или его части....432

20.7.4. Предотвращение закрытия окна....432

20.8. События клавиатуры....433

20.8.1. Управление фокусом ввода....433

20.8.2. Назначение клавиш быстрого доступа....436

20.8.3. Нажатие и отпускание клавиш....438

20.9. События мыши....440

20.9.1. Нажатие и отпускание кнопок мыши....440

20.9.2. Перемещение курсора мыши....441

20.9.3. Наведение и увод курсора мыши....442

20.9.4. Прокрутка колесика мыши....442

20.9.5. Изменение курсора мыши....443

20.10. Операция перетаскивания (drag & drop)....444

20.10.1. Запуск перетаскивания....444

20.10.1.1. Задание перетаскиваемых данных....446

20.10.2. Обработка перетаскивания и сброса....447

20.11. Работа с буфером обмена....449

20.12. Фильтрация событий....450

20.13. Генерирование событий....451

20.14. Пользовательские события....451

Глава 21. Размещение компонентов в окнах. Контейнеры....452

21.1. Абсолютное позиционирование....452

21.2. Контейнеры-стопки....453

21.3. Контейнер-сетка....456

21.4. Контейнер-форма....458

21.5. Стеки....461

21.6. Управление размерами компонентов....462

21.7. Группа....463

21.8. Панель с рамкой....465

21.9. Панель с вкладками....466

21.10. Аккордеон....470

21.11. Панель с изменяемыми областями....472

21.12. Прокручиваемая панель....474

Глава 22. Основные компоненты....476

22.1. Надпись....476

22.2. Кнопка....478

22.3. Переключатель....480

22.4. Флажок....481

22.5. Поле ввода....481

22.5.1. Основные методы и сигналы....482

22.5.2. Ввод данных по маске....485

22.5.3. Контроль ввода с помощью валидаторов....486

22.6. Область редактирования....487

22.6.1. Основные методы и сигналы....487

22.6.2. Задание параметров области редактирования....489

22.6.3. Указание параметров текста и фона....491

22.6.4. Класс QTextDocument....492

22.6.5. Класс QTextCursor....495

22.7. Текстовый браузер....498

22.8. Поля для ввода целых и вещественных чисел....500

22.9. Поля для ввода даты и времени....502

22.10. Календарь....505

22.11. Семисегментный индикатор....507

22.12. Индикатор процесса....508

22.13. Шкала с ползунком....509

22.14. Круговая шкала с ползунком....511

22.15. Полоса прокрутки....512

22.16. Веб-браузер....512

Глава 23. Списки и таблицы....517

23.1. Раскрывающийся список....517

23.1.1. Добавление, изменение и удаление элементов....517

23.1.2. Изменение параметров списка....518

23.1.3. Поиск элементов....519

23.1.4. Сигналы....520

23.2. Список для выбора шрифта....520

23.3. Роли элементов....521

23.4. Модели....522

23.4.1. Доступ к данным внутри модели....522

23.4.2. Класс QStringListModel....524

22.4.3. Класс QStandardltemModel....525

23.4.4. Класс QStandardltem....529

23.5. Представления....532

23.5.1. Класс QAbstractltemView....533

23.5.2. Простой список....536

23.5.3. Таблица....538

23.5.4. Иерархический список....540

23.5.5. Управление заголовками строк и столбцов....542

23.6. Управление выделением элементов....545

22.7. Промежуточные модели....547

23.8. Использование делегатов....548

Глава 24. Работа с базами данных....552

24.1. Соединение с базой данных....552

24.2. Получение сведений о структуре таблиц....555

24.2.1. Получение сведений о таблицах....555

24.2.2. Получение сведений о полях таблиц....556

24.2.3. Получение сведений о ключевом индексе....557

24.2.4. Получение сведений об ошибке....557

24.3. Выполнение SQL-запросов и получение их результатов....558

24.3.1. Выполнение запросов....558

24.3.2. Обработка результатов выполнения запросов....561

24.3.3. Очистка запроса....563

24.3.4. Получение служебных сведений о запросе....564

24.4. Модели, связанные с данными....564

24.4.1. Модель, связанная с SQL-запросом....564

24.4.2. Модель, связанная с таблицей..................................i....566

24.4.3. Модель, поддерживающая межтабличные связи....571

24.4.4. Использование связанных делегатов....574

Глава 25. Работа с графикой....576

25.1. Вспомогательные классы....576

25.1.1. Класс QColor. цвет....576

25.1.2. Класс QPen: перо....580

25.1.3. Класс QBrush: кисть....581

25.1.4. Класс QLine: линия....582

24.1.5. Класс QPolygon: многоугольник....583

25.1.6. Класс QFont: шрифт....585

25.2. Класс QPainter....587

25.2.1. Рисование линий и фигур....588

25.2.2. Вывод текста....590

25.2.3. Вывод изображений....591

25.2.4. Преобразование систем координат....593

25.2.5. Сохранение команд рисования в файл....594

25.3. Работа с растровыми изображениями....595

25.3.1. Класс QPixmap....595

25.3.2. Класс QBitmap....598

25.3.3. Класс Qlmage....599

25.3.4. Класс Qlcon....602

Глава 26. Графическая сцена....604

26.1. Графическая сцена....604

26.1.1. Настройка графической сцены....604

26.1.2. Добавление и удаление графических объектов....605

26.1.3. Добавление компонентов на сцену....606

26.1.4. Поиск графических объектов....606

26.1.5. Управление фокусом ввода....608

26.1.6. Управление выделением объектов....608

26.1.7. Прочие методы и сигналы....609

26.2. Графическое представление....610

26.2.1. Настройка графического представления....610

26.2.2. Преобразования между координатами представления и сцены....612

26.2.3. Поиск объектов....613

26.2.4. Преобразование системы координат....613

26.2.5. Прочие методы....614

26.3. Графические объекты....615

26.3.1. Класс QGraphicsItem: базовый класс для графических объектов....615

26.3.1.1. Настройка графического объекта....615

26.3.1.2. Выполнение преобразований....617

26.3.1.3. Прочие методы....618

26.3.2. Готовые графические объекты....619

26.3.2.1. Линия....619

26.3.2.2. Класс QAbstractGraphicsShapeltem....619

26.3.2.3. Прямоугольник....620

26.3.2.4. Многоугольник....620

26.3.2.5. Эллипс....620

26.3.2.6. Изображение....621

26.3.2.7. Простой текст....622

26.3.2.8. Форматированный текст....622

26.4. Группировка объектов....623

26.5. Эффекты....624

26.5.1. Класс QGraphicsEffect....624

26.5.2. Тень....625

26.5.3. Размытие....626

26.5.4. Изменение цвета....626

26.5.5. Изменение прозрачности....626

26.6. Обработка событий....627

26.6.1. События клавиатуры....627

26.6.2. События мыши....628

26.6.3. Обработка перетаскивания и сброса....631

26.6.4. Фильтрация событий....632

26.6.5. Обработка изменения состояния объекта....632

Глава 27. Диалоговые окна....635

27.1. Пользовательские диалоговые окна....635

27.2. Класс QDialogButtonBox....637

27.3. Класс QMessageBox....640

27.3.1. Основные методы и сигналы....641

27.3.2. Окно информационного сообщения....643

27.3.3. Окно подтверждения....644

27.3.4. Окно предупреждающего сообщения....645

27.3.5. Окно критического сообщения....645

27.3.6. Окно сведений о программе....646

27.3.7. Окно сведений о фреймворке Qt....646

27.4. Класс QlnputDialog....647

27.4.1. Основные методы и сигналы....648

27.4.2. Окно для ввода строки....650

27.4.3. Окно для ввода целого числа....650

27.4.4. Окно для ввода вещественного числа....651

27.4.5. Окно для выбора пункта из списка....652

27.4.6. Окно для ввода большого текста....652

27.5. Класс QFileDialog....653

27.5.1. Основные методы и сигналы....654

27.5.2. Окно для выбора каталога....656

27.5.3. Окно для открытия файлов....657

27.5.4. Окно для сохранения файла....659

27.6. Окно для выбора цвета....660

27.7. Окно для выбора шрифта....661

27.8. Окно для вывода сообщения об ошибке....662

27.9. Окно с индикатором хода процесса....663

27.10. Создание многостраничного мастера....664

27.10.1. Класс QWizard....664

27.10.2. Класс QWizardPage....668

Глава 28. Создание SDI- и МШ-программ....671

28.1. Главное окно программы....671

28.2. Меню и действия....676

28.2.1. Класс QMenuBar....676

28.2.2. Класс QMenu....677

28.2.3. Контекстное меню компонента....680

28.2.4. Класс QAction....681

28.2.5. Объединение действий-переключателей в группу....684

28.3. Панели инструментов....685

28.3.1. Класс QToolBar....686

28.3.2. Класс QToolButton....687

28.4. Прикрепляемые панели....689

28.5. Строка состояния....690

28.6. MDI-программы....691

28.6.1. Класс QMdiArea....691

28.6.2. Класс QMdiSubWindow....694

28.7. Добавление значка программы в область уведомлений....695

Глава 29. Мультимедиа....697

29.1. Воспроизведение мультимедиа....697

29.1.1. Мультимедийный проигрыватель....697

29.1.2. Звуковой выход. Воспроизведение звука....700

29.1.3. Метаданные мультимедийного источника....705

29.1.4. Видеопанель. Воспроизведение видео....708

29.2. Запись мультимедиа....710

29.2.1. Транспорт....710

29.2.2. Звуковой вход....711

29.2.3. Кодировщик звука и видео....711

29.2.4. Указание форматов кодирования. Запись звука....713

29.2.5. Камера. Запись видео....717

29.2.6. Кодировщик статичных изображений. Захват фото....721

29.3. Воспроизведение звуковых эффектов....723

Глава 30. Печать документов....727

30.1. Основные средства печати....727

30.1.1. Класс QPrinter....727

30.1.2. Вывод на печать....730

30.1.3. Служебные классы....736

30.1.3.1. Класс QPageSize....736

30.1.3.2. Класс QPageLayout....738

30.2. Задание параметров принтера и страницы....740

30.2.1. Класс QPrintDialog....740

30.2.2. Класс QPageSetupDialog....741

30.3. Предварительный просмотр....743

30.3.1. Класс QPrintPreviewDialog....743

30.3.2. Класс QPrintPreviewWidget....746

30.4. Класс QPrinterlnfcr. получение сведений об устройстве печати....748

30.5. Класс QPdfWriter. экспорт в формат PDF....750

Глава 31. Сохранение настроек программ....753

31.1. Создание объекта класса QSettings....753

31.2. Запись и чтение данных....754

31.2.1. Базовые средства записи и чтения данных....754

31.2.2. Группировка сохраняемых значений. Ключи....756

31.2.3. Запись списков....758

31.3. Вспомогательные методы класса QSettings....760

31.4. Где хранятся настройки?....760

Глава 32. Программа «Судоку»....762

32.1. Правила судоку....762

32.2. Описание программы «Судоку»....763

32.3. Разработка программы....765

32.3.1. Подготовительные действия....765

32.3.2. Класс MyLabel: ячейка поля судоку....765

32.3.3. Класс Widget: поле судоку....769

32.3.3.1. Конструктор класса Widget....770

32.3.3.2. Прочие методы класса Widget....772

32.3.4. Класс MainWindow: основное окно программы....776

32.3.4.1. Конструктор класса Main Window....777

32.3.4.2. Остальные методы класса MainWindow....780

32.3.5. Главный модуль....780

32.3.6. Копирование и вставка головоломок....781

32.3.6.1. Форматы данных....781

32.3.6.2. Реализация копирования и вставки в классе Widget....781

32.3.6.3. Реализация копирования и вставки в классе MainWindow....784

32.3.7. Сохранение и загрузка данных....788

32.3.8. Печать и предварительный просмотр....790

32.3.8.1. Реализация печати в классе Widget....791

32.3.8.2. Класс PreviewDialog: диалоговое окно предварительного просмотра....792

32.3.8.3. Реализация печати в классе MainWindow....795

Заключение....797

Приложение. Описание электронного архива....798

Предметный указатель....799

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

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

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

Похожее:

Список отзывов:

Нет отзывов к книге.