Главная » 2017»Март»9 » Python 3 и PyQt 5. Разработка приложений
23:22
Python 3 и PyQt 5. Разработка приложений
Python 3 и PyQt 5. Разработка приложений — Описан язык Python 3: типы данных, операторы, условия, циклы, регулярные выражения, функции, инструменты объектно-ориентированного программирования, работа с файлами и каталогами, часто используемые модули стандартной библиотеки. Приведены основы базы данных SQLite, интерфейс доступа к базе и способы получения данных из Интернета. Особое внимание уделено библиотеке PyQt 5, позволяющей создавать приложения с графическим интерфейсом на языке Python. Рассмотрены средства для обработки сигналов и событий, управления свойствами окна, разработки многопоточных приложений, описаны основные компоненты (кнопки, текстовые поля, списки, таблицы, меню, панели инструментов и др.), варианты их размещения внутри окна, инструменты для работы с базами данных, мультимедиа, печати документов и экспорта их в формате Adobe PDF.
Название: Python 3 и PyQt 5. Разработка приложений Автор: Владимир Дронов, Николай Прохоренок Издательство: БХВ-Петербург Год: 2016 Страниц: 833 Формат: PDF Размер: 200,81 Мб Качество: Отличное
Содержание:
Введение ЧАСТЬ 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. Оператор ветвления ifelse 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. Инструкция tryexceptelsefinally 14.2. Инструкция withas 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 Глава 20. Знакомство с PyQt 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. Служебные классы 32.1.3.1. Класс QPageSize 32.1.3.2. Класс 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 Заключение Приложение. Описание электронного архива Предметный указатель