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

Python 3 и PyQt 5. Разработка приложений. 2-е издание
Описан язык Python 3: типы данных, операторы, условия, циклы, регулярные выражения, функции, инструменты объектно-ориентированного программирования, работа с файлами и каталогами, часто используемые модули стандартной библиотеки. Приведены основы базы данных SQLite, интерфейс доступа к базе и способы получения данных из Интернета. Особое внимание уделено библиотеке PyQt 5, позволяющей создавать приложения с графическим интерфейсом на языке Python. Рассмотрены средства для обработки сигналов и событий, управления свойствами окна, разработки многопоточных приложений, описаны основные компоненты (кнопки, текстовые поля, списки, таблицы, меню, панели инструментов и др.), варианты их размещения внутри окна, инструменты для работы с базами данных, мультимедиа, печати документов и экспорта их в формате Adobe PDF. На сайте издательства приведены все примеры из книги.
Оглавление книги
Введение
ЧАСТЬ I. ОСНОВЫ ЯЗЫКА PYTHON
Глава 1. Первые шаги
1.1. Установка Python
1.1.1. Установка нескольких интерпретаторов Python
1.1.2. Запуск программы с помощью разных версий Python
1.2. Первая программа на Python
1.3. Структура программы
1.4. Комментарии
1.5. Скрытые возможности IDLE
1.6. Вывод результатов работы программы
1.7. Ввод данных
1.8. Доступ к документации
Глава 2. Переменные
2.1. Именование переменных
2.2. Типы данных
2.3. Присваивание значения переменным
2.4. Проверка типа данных
2.5. Преобразование типов данных
2.6. Удаление переменной
Глава 3. Операторы
3.1. Математические операторы
3.2. Двоичные операторы
3.3. Операторы для работы с последовательностями
3.4. Операторы присваивания
3.5. Приоритет выполнения операторов
Глава 4. Условные операторы и циклы
4.1. Операторы сравнения
4.2. Оператор ветвления if...else
4.3. Цикл for
4.4. Функции range() и enumerate()
4.5. Цикл while
4.6. Оператор continue. Переход на следующую итерацию цикла
4.7. Оператор break. Прерывание цикла
Глава 5. Числа
5.1. Встроенные функции и методы для работы с числами
5.2. Модуль math. Математические функции
5.3. Модуль random. Генерация случайных чисел
Глава 6. Строки и двоичные данные
6.1. Создание строки
6.2. Специальные символы
6.3. Операции над строками
6.4. Форматирование строк
6.5. Метод format()
6.6. Функции и методы для работы со строками
6.7. Настройка локали
6.8. Изменение регистра символов
6.9. Функции для работы с символами
6.10. Поиск и замена в строке
6.11. Проверка типа содержимого строки
6.12. Тип данных bytes
6.13. Тип данных bytearray
6.14. Преобразование объекта в последовательность байтов
6.15. Шифрование строк
Глава 7. Регулярные выражения
7.1. Синтаксис регулярных выражений
7.2. Поиск первого совпадения с шаблоном
7.3. Поиск всех совпадений с шаблоном
7.4. Замена в строке
7.5. Прочие функции и методы
Глава 8. Списки, кортежи, множества и диапазоны
8.1. Создание списка
8.2. Операции над списками
8.3. Многомерные списки
8.4. Перебор элементов списка
8.5. Генераторы списков и выражения-генераторы
8.6. Функции map(), zip(), filter() и reduce()
8.7. Добавление и удаление элементов списка
8.8. Поиск элемента в списке и получение сведений о значениях, входящих в список
8.9. Переворачивание и перемешивание списка
8.10. Выбор элементов случайным образом
8.11. Сортировка списка
8.12. Заполнение списка числами
8.13. Преобразование списка в строку
8.14. Кортежи
8.15. Множества
8.16. Диапазоны
8.17. Модуль itertools
8.17.1. Генерация неопределенного количества значений
8.17.2. Генерация комбинаций значений
8.17.3. Фильтрация элементов последовательности
8.17.4. Прочие функции
Глава 9. Словари
9.1. Создание словаря
9.2. Операции над словарями
9.3. Перебор элементов словаря
9.4. Методы для работы со словарями
9.5. Генераторы словарей
Глава 10. Работа с датой и временем
10.1. Получение текущих даты и времени
10.2. Форматирование даты и времени
10.3. Засыпание скрипта
10.4. Модуль datetime. Манипуляции датой и временем
10.4.1. Класс timedelta
10.4.2. Класс date
10.4.3. Класс time
10.4.4. Класс datetime
10.5. Модуль calendar. Вывод календаря
10.5.1. Методы классов TextCalendar и LocaleTextCalendar
10.5.2. Методы классов HTMLCalendar и LocaleHTMLCalendar
10.5.3. Другие полезные функции
10.6. Измерение времени выполнения фрагментов кода
Глава 11. Пользовательские функции
11.1. Определение функции и ее вызов
11.2. Расположение определений функций
11.3. Необязательные параметры и сопоставление по ключам
11.4. Переменное число параметров в функции
11.5. Анонимные функции
11.6. Функции-генераторы
11.7. Декораторы функций
11.8. Рекурсия. Вычисление факториала
11.9. Глобальные и локальные переменные
11.10. Вложенные функции
11.11. Аннотации функций
Глава 12. Модули и пакеты
12.1. Инструкция import
12.2. Инструкция from
12.3. Пути поиска модулей
12.4. Повторная загрузка модулей
12.5. Пакеты
Глава 13. Объектно-ориентированное программирование
13.1. Определение класса и создание экземпляра класса
13.2. Методы __init__() и __del__()
13.3. Наследование
13.4. Множественное наследование
13.4.1. Примеси и их использование
13.5. Специальные методы
13.6. Перегрузка операторов
13.7. Статические методы и методы класса
13.8. Абстрактные методы
13.9. Ограничение доступа к идентификаторам внутри класса
13.10. Свойства класса
13.11. Декораторы классов
Глава 14. Обработка исключений
14.1. Инструкция try 265
14.2. Инструкция with...as
14.3. Классы встроенных исключений
14.4. Пользовательские исключения
Глава 15. Итераторы, контейнеры и перечисления
15.1. Итераторы
15.2. Контейнеры
15.2.1. Контейнеры-последовательности
15.2.2. Контейнеры-словари
15.3. Перечисления
Глава 16. Работа с файлами и каталогами
16.1. Открытие файла
16.2. Методы для работы с файлами
16.3. Доступ к файлам с помощью модуля os
16.4. Классы StringIO и BytesIO
16.5. Права доступа к файлам и каталогам
16.6. Функции для манипулирования файлами
16.7. Преобразование пути к файлу или каталогу
16.8. Перенаправление ввода/вывода
16.9. Сохранение объектов в файл
16.10. Функции для работы с каталогами
16.11. Исключения, возбуждаемые файловыми операциями
Глава 17. Основы SQLite
17.1. Создание базы данных
17.2. Создание таблицы
17.3. Вставка записей
17.4. Обновление и удаление записей
17.5. Изменение структуры таблицы
17.6. Выбор записей
17.7. Выбор записей из нескольких таблиц
17.8. Условия в инструкциях WHERE и HAVING
17.9. Индексы
17.10. Вложенные запросы
17.11. Транзакции
17.12. Удаление таблицы и базы данных
Глава 18. Доступ к базе данных SQLite из Python
18.1. Создание и открытие базы данных
18.2. Выполнение запросов
18.3. Обработка результата запроса
18.4. Управление транзакциями
18.5. Создание пользовательской сортировки
18.6. Поиск без учета регистра символов
18.7. Создание агрегатных функций
18.8. Преобразование типов данных
18.9. Сохранение в таблице даты и времени
18.10. Обработка исключений
18.11. Трассировка выполняемых запросов
Глава 19. Взаимодействие с Интернетом
19.1. Разбор URL-адреса
19.2. Кодирование и декодирование строки запроса
19.3. Преобразование относительного URL-адреса в абсолютный
19.4. Разбор HTML-эквивалентов
19.5. Обмен данными по протоколу HTTP
19.6. Обмен данными с помощью модуля urllib.request
19.7. Определение кодировки
ЧАСТЬ II. БИБЛИОТЕКА PYQT 5
Глава 20. Знакомство с PyQt 5
20.1. Установка PyQt 5
20.2. Первая программа
20.3. Структура PyQt-программы
20.4. ООП-стиль создания окна
20.5. Создание окна с помощью программы Qt Designer
20.5.1. Создание формы
20.5.2. Загрузка ui-файла в программе
20.5.3. Преобразование ui-файла в py-файл
20.6. Модули PyQt 5
20.7. Типы данных в PyQt
20.8. Управление основным циклом приложения
20.9. Многопоточные приложения
20.9.1. Класс QThread: создание потока
20.9.2. Управление циклом внутри потока
20.9.3. Модуль queue: создание очереди заданий
20.9.4. Классы QMutex и QMutexLocker
20.10. Вывод заставки
20.11. Доступ к документации
Глава 21. Управление окном приложения
21.1. Создание и отображение окна
21.2. Указание типа окна
21.3. Изменение и получение размеров окна
21.4. Местоположение окна на экране и управление им
21.5. Указание координат и размеров
21.5.1. Класс QPoint: координаты точки
21.5.2. Класс QSize: размеры прямоугольной области
21.5.3. Класс QRect: координаты и размеры прямоугольной области
21.6. Разворачивание и сворачивание окна
21.7. Управление прозрачностью окна
21.8. Модальные окна
21.9. Смена значка в заголовке окна
21.10. Изменение цвета фона окна
21.11. Вывод изображения в качестве фона
21.12. Создание окна произвольной формы
21.13. Всплывающие подсказки
21.14. Закрытие окна из программы
Глава 22. Обработка сигналов и событий
22.1. Назначение обработчиков сигналов
22.2. Блокировка и удаление обработчика
22.3. Генерация сигналов
22.4. Передача данных в обработчик
22.5. Использование таймеров
22.6. Перехват всех событий
22.7. События окна
22.7.1. Изменение состояния окна
22.7.2. Изменение положения и размеров окна
22.7.3. Перерисовка окна или его части
22.7.4. Предотвращение закрытия окна
22.8. События клавиатуры
22.8.1. Установка фокуса ввода
22.8.2. Назначение клавиш быстрого доступа
22.8.3. Нажатие и отпускание клавиши на клавиатуре
22.9. События мыши
22.9.1. Нажатие и отпускание кнопки мыши
22.9.2. Перемещение указателя мыши
22.9.3. Наведение и увод указателя
22.9.4. Прокрутка колесика мыши
22.9.5. Изменение внешнего вида указателя мыши
22.10. Технология drag & drop
22.10.1. Запуск перетаскивания
22.10.2. Класс QMimeData
22.10.3. Обработка сброса
22.11. Работа с буфером обмена
22.12. Фильтрация событий
22.13. Искусственные события
Глава 23. Размещение компонентов в окнах
23.1. Абсолютное позиционирование
23.2. Горизонтальное и вертикальное выравнивание
23.3. Выравнивание по сетке
23.4. Выравнивание компонентов формы
23.5. Классы QStackedLayout и QStackedWidget
23.6. Класс QSizePolicy
23.7. Объединение компонентов в группу
23.8. Панель с рамкой
23.9. Панель с вкладками
23.10. Компонент аккордеон
23.11. Панели с изменяемым размером
23.12. Область с полосами прокрутки
Глава 24. Основные компоненты
24.1. Надпись
24.2. Командная кнопка
24.3. Переключатель
24.4. Флажок
24.5. Однострочное текстовое поле
24.5.1. Основные методы и сигналы
24.5.2. Ввод данных по маске
24.5.3. Контроль ввода
24.6. Многострочное текстовое поле
24.6.1. Основные методы и сигналы
24.6.2. Изменение параметров поля
24.6.3. Указание параметров текста и фона
24.6.4. Класс QTextDocument
24.6.5. Класс QTextCursor
24.7. Текстовый браузер
24.8. Поля для ввода целых и вещественных чисел
24.9. Поля для ввода даты и времени
24.10. Календарь
24.11. Электронный индикатор
24.12. Индикатор хода процесса
24.13. Шкала с ползунком
24.14. Круговая шкала с ползунком
24.15. Полоса прокрутки
24.16. Web-браузер
Глава 25. Списки и таблицы
25.1. Раскрывающийся список
25.1.1. Добавление, изменение и удаление элементов
25.1.2. Изменение параметров списка
25.1.3. Поиск элементов
25.1.4. Сигналы
25.2. Список для выбора шрифта
25.3. Роли элементов
25.4. Модели
25.4.1. Доступ к данным внутри модели
25.4.2. Класс QStringListModel
25.4.3. Класс QStandardItemModel
25.4.4. Класс QStandardItem
25.5. Представления
25.5.1. Класс QAbstractItemView
25.5.2. Простой список
25.5.3. Таблица
25.5.4. Иерархический список
25.5.5. Управление заголовками строк и столбцов
25.6. Управление выделением элементов
25.7. Промежуточные модели
25.8. Использование делегатов
Глава 26. Работа с базами данных
26.1. Соединение с базой данных
26.2. Получение сведений о структуре таблицы
26.2.1. Получение сведений о таблице
26.2.2. Получение сведений об отдельном поле
26.2.3. Получение сведений об индексе
26.2.4. Получение сведений об ошибке
26.3. Выполнение SQL-запросов и получение их результатов
26.3.1. Выполнение запросов
26.3.2. Обработка результатов выполнения запросов
26.3.3. Очистка запроса
26.3.4. Получение служебных сведений о запросе
26.4. Модели, связанные с данными
26.4.1. Модель, связанная с SQL-запросом
26.4.2. Модель, связанная с таблицей
26.4.3. Модель, поддерживающая межтабличные связи
26.4.4. Использование связанных делегатов
Глава 27. Работа с графикой
27.1. Вспомогательные классы
27.1.1. Класс QColor: цвет
27.1.2. Класс QPen: перо
27.1.3. Класс QBrush: кисть
27.1.4. Класс QLine: линия
27.1.5. Класс QPolygon: многоугольник
27.1.6. Класс QFont: шрифт
27.2. Класс QPainter
27.2.1. Рисование линий и фигур
27.2.2. Вывод текста
27.2.3. Вывод изображения
27.2.4. Преобразование систем координат
27.2.5. Сохранение команд рисования в файл
27.3. Работа с изображениями
27.3.1. Класс QPixmap
27.3.2. Класс QBitmap
27.3.3. Класс QImage
27.3.4. Класс QIcon
Глава 28. Графическая сцена
28.1. Класс QGraphicsScene: сцена
28.1.1. Настройка сцены
28.1.2. Добавление и удаление графических объектов
28.1.3. Добавление компонентов на сцену
28.1.4. Поиск объектов
28.1.5. Управление фокусом ввода
28.1.6. Управление выделением объектов
28.1.7. Прочие методы и сигналы
28.2. Класс QGraphicsView: представление
28.2.1. Настройка представления
28.2.2. Преобразования между координатами представления и сцены
28.2.3. Поиск объектов
28.2.4. Преобразование системы координат
28.2.5. Прочие методы
28.3. Класс QGraphicsItem: базовый класс для графических объектов
28.3.1. Настройка объекта
28.3.2. Выполнение преобразований
28.3.3. Прочие методы
28.4. Графические объекты
28.4.1. Линия
28.4.2. Класс QAbstractGraphicsShapeItem
28.4.3. Прямоугольник
28.4.4. Многоугольник
28.4.5. Эллипс
28.4.6. Изображение
28.4.7. Простой текст
28.4.8. Форматированный текст
28.5. Группировка объектов
28.6. Эффекты
28.6.1. Класс QGraphicsEffect
28.6.2. Тень
28.6.3. Размытие
28.6.4. Изменение цвета
28.6.5. Изменение прозрачности
28.7. Обработка событий
28.7.1. События клавиатуры
28.7.2. События мыши
28.7.3. Обработка перетаскивания и сброса
28.7.4. Фильтрация событий
28.7.5. Обработка изменения состояния объекта
Глава 29. Диалоговые окна
29.1. Пользовательские диалоговые окна
29.2. Класс QDialogButtonBox
29.3. Класс QMessageBox
29.3.1. Основные методы и сигналы
29.3.2. Окно информационного сообщения
29.3.3. Окно подтверждения
29.3.4. Окно предупреждающего сообщения
29.3.5. Окно критического сообщения
29.3.6. Окно сведений о программе
29.3.7. Окно сведений о библиотеке Qt
29.4. Класс QInputDialog
29.4.1. Основные методы и сигналы
29.4.2. Окно для ввода строки
29.4.3. Окно для ввода целого числа
29.4.4. Окно для ввода вещественного числа
29.4.5. Окно для выбора пункта из списка
29.4.6. Окно для ввода большого текста
29.5. Класс QFileDialog
29.5.1. Основные методы и сигналы
29.5.2. Окно для выбора каталога
29.5.3. Окно для открытия файлов
29.5.4. Окно для сохранения файла
29.6. Окно для выбора цвета
29.7. Окно для выбора шрифта
29.8. Окно для вывода сообщения об ошибке
29.9. Окно с индикатором хода процесса
29.10. Создание многостраничного мастера
29.10.1. Класс QWizard
29.10.2. Класс QWizardPage
Глава 30. Создание SDI- и MDI-приложений
30.1. Создание главного окна приложения
30.2. Меню
30.2.1. Класс QMenuBar
30.2.2. Класс QMenu
30.2.3. Контекстное меню компонента
30.2.4. Класс QAction
30.2.5. Объединение переключателей в группу
30.3. Панели инструментов
30.3.1. Класс QToolBar
30.3.2. Класс QToolButton
30.4. Прикрепляемые панели
30.5. Управление строкой состояния
30.6. MDI-приложения
30.6.1. Класс QMdiArea
30.6.2. Класс QMdiSubWindow
30.7. Добавление значка приложения в область уведомлений
Глава 31. Мультимедиа
31.1. Класс QMediaPlayer
31.2. Класс QVideoWidget
31.3. Класс QMediaPlaylist
31.4. Запись звука
31.4.1. Класс QAudioRecorder
31.4.2. Класс QAudioEncoderSettings
31.5. Класс QSoundEffect
Глава 32. Печать документов
32.1. Основные средства печати
32.1.1. Класс QPrinter
32.1.2. Вывод на печать
32.1.3. Служебные классы
Класс QPageSize
Класс QPageLayout
32.2. Задание параметров принтера и страницы
32.2.1. Класс QPrintDialog
32.2.2. Класс QPageSetupDialog
32.3. Предварительный просмотр документов перед печатью
32.3.1. Класс QPrintPreviewDialog
32.3.2. Класс QPrintPreviewWidget
32.4. Получение сведений о принтере. Класс QPrinterInfo
32.5. Экспорт в формат PDF. Класс QPdfWriter
Заключение
Предыдущие издания
Python 3 и PyQt. Разработка приложений

|