Главная страница

ээдд. Прохоренок_Н_А__Дронов_В_А_Python_3_и_PyQt_5_Разработка_приложен. Николай Прохоренок Владимир Дронов


Скачать 7.92 Mb.
НазваниеНиколай Прохоренок Владимир Дронов
Дата05.05.2023
Размер7.92 Mb.
Формат файлаpdf
Имя файлаПрохоренок_Н_А__Дронов_В_А_Python_3_и_PyQt_5_Разработка_приложен.pdf
ТипДокументы
#1111379
страница4 из 83
1   2   3   4   5   6   7   8   9   ...   83
Глава 30. Взаимодействие с Windows ...................................................................... 725 30.1. Управление кнопкой в панели задач ................................................................................. 725 30.1.1. Класс QWinTaskbarButton ...................................................................................... 725 30.1.2. Класс QWinTaskbarProgress .................................................................................. 727 30.2. Списки быстрого доступа .................................................................................................. 730 30.2.1. Класс QWinJumpList ............................................................................................... 730 30.2.2. Класс QWinJumpListCategory ................................................................................ 731 30.2.3. Класс QWinJumpListItem ........................................................................................ 732 30.3. Панели инструментов, выводящиеся на миниатюрах ..................................................... 735 30.3.1. Класс QWinThumbnailToolBar ............................................................................... 735 30.3.2. Класс QWinThumbnailToolButton........................................................................... 736 30.4. Дополнительные инструменты по управлению окнами .................................................. 739 30.5. Получение сведений об операционной системе ............................................................... 741 30.6. Получение путей к системным каталогам ........................................................................ 742

Оглавление
13
Глава 31. Сохранение настроек приложений ........................................................ 743 31.1. Создание экземпляра класса QSettings .............................................................................. 743 31.2. Запись и чтение данных ..................................................................................................... 745 31.2.1. Базовые средства записи и чтения данных ........................................................... 745 31.2.2. Группировка сохраняемых значений. Ключи ...................................................... 746 31.2.3. Запись списков ........................................................................................................ 748 31.3. Вспомогательные методы класса QSettings ...................................................................... 750 31.4. Где хранятся настройки? .................................................................................................... 750
Глава 32. Приложение «Судоку» .............................................................................. 752 32.1. Правила судоку ................................................................................................................... 752 32.2. Описание приложения «Судоку» ....................................................................................... 753 32.3. Программирование приложения ....................................................................................... 755 32.3.1. Подготовительные действия .................................................................................. 755 32.3.2. Класс MyLabel: ячейка поля судоку ...................................................................... 755 32.3.3. Класс Widget: поле судоку ..................................................................................... 759 32.3.3.1. Конструктор класса Widget ..................................................................... 760 32.3.3.2. Прочие методы класса Widget ................................................................ 762 32.3.4. Класс MainWindow: основное окно приложения ................................................. 766 32.3.4.1. Конструктор класса MainWindow ........................................................... 767 32.3.4.2. Остальные методы класса MainWindow................................................. 770 32.3.5. Запускающий модуль ............................................................................................. 770 32.3.6. Копирование и вставка головоломок .................................................................... 771 32.3.6.1. Форматы данных ..................................................................................... 771 32.3.6.2. Реализация копирования и вставки в классе Widget ............................. 772 32.3.6.3. Реализация копирования и вставки в классе MainWindow ................... 774 32.3.7. Сохранение и загрузка данных .............................................................................. 778 32.3.8. Печать и предварительный просмотр ................................................................... 781 32.3.8.1. Реализация печати в классе Widget ........................................................ 781 32.3.8.2. Класс PreviewDialog: диалоговое окно предварительного просмотра ................................................................................ 782 32.3.8.3. Реализация печати в классе MainWindow .............................................. 785
Заключение ................................................................................................................... 787
Приложение. Описание электронного архива ....................................................... 789
Предметный указатель .............................................................................................. 791

14
Оглавление

Введение
Добро пожаловать в мир Python!
В первой части книги мы рассмотрим собственно Python — высокоуровневый, объектно- ориентированный, тьюринг-полный, интерпретируемый язык программирования, предна- значенный для решения самого широкого круга задач. С его помощью можно обрабатывать числовую и текстовую информацию, создавать изображения, работать с базами данных, разрабатывать веб-сайты и приложения с графическим интерфейсом. Python — язык кросс- платформенный, он позволяет создавать программы, которые будут работать во всех опера- ционных системах. В этой книге мы изучим базовые возможности Windows-редакции
Python версии 3.6.3.
Согласно официальной версии, название языка произошло вовсе не от змеи. Создатель язы- ка, Гвидо ван Россум (Guido van Rossum), назвал свое творение в честь британского коме- дийного телешоу Би-Би-Си «Летающий цирк Монти Пайтона» (Monty Python’s Flying
Circus). Поэтому правильно название этого замечательного языка должно звучать как «Пай- тон».
Программа на языке Python представляет собой обычный текстовый файл с расширением py
(консольная программа) или pyw
(программа с графическим интерфейсом). Все инструкции из этого файла выполняются интерпретатором построчно. Для ускорения работы при пер- вом импорте модуля создается промежуточный байт-код, который сохраняется в одноимен- ном файле с расширением pyc
. При последующих запусках, если модуль не был изменен, исполняется именно байт-код. Для выполнения низкоуровневых операций и задач, требую- щих высокой скорости работы, можно написать модуль на языке C или C++, скомпилиро- вать его, а затем подключить к основной программе.
Поскольку Python, как было только что отмечено, является языком объектно-ориенти- рованным, практически все данные в нем представляются объектами — даже значения, от- носящиеся к элементарным типам данных, наподобие чисел и строк, а также сами типы данных. При этом в переменной всегда сохраняется только ссылка на объект, а не сам объ- ект. Например, можно создать функцию, сохранить ссылку на нее в переменной, а затем вызвать функцию через эту переменную. Такое обстоятельство делает язык Python идеаль- ным инструментом для создания программ, использующих функции обратного вызова, — например, при разработке графического интерфейса. Тот факт, что Python относится к кате- гории языков объектно-ориентированных, отнюдь не означает, что и объектно-ориенти- рованный стиль программирования (ООП) является при его использовании обязательным: на языке Python можно писать программы как в стиле ООП, так и в процедурном стиле, — как того требует конкретная ситуация или как предпочитает программист.

16
Введение
Python — самый стильный язык программирования в мире, он не допускает двоякого написа- ния кода. Так, языку Perl, например, присущи зависимость от контекста и множественность синтаксиса, и часто два программиста, пишущие на Perl, просто не понимают код друг друга.
В Python же отсутствуют лишние конструкции, и код можно написать только одним спосо- бом. Все программисты, работающие с языком Python, должны придерживаться стандарта
PEP-8, описанного в документе https://www.python.org/dev/peps/pep-0008/. Соответственно, более читаемого кода нет ни в одном ином языке программирования.
Синтаксис языка Python вызывает много нареканий у программистов, знакомых с другими языками программирования. На первый взгляд может показаться, что отсутствие ограничи- тельных символов для выделения блоков (фигурных скобок или конструкции begin...end
) и использование для их формирования пробелов могут приводить к ошибкам. Однако это только первое и неправильное впечатление. Хороший стиль программирования в любом языке обязывает выделять инструкции внутри блока одинаковым количеством пробелов.
В этой ситуации ограничительные символы просто ни к чему. Бытует мнение, что програм- ма будет по-разному смотреться в разных редакторах. И это неверно — согласно стандарту, для выделения блоков необходимо использовать четыре пробела, а четыре пробела в лю- бом редакторе смотрятся одинаково. При этом, если количество пробелов внутри блока окажется разным, интерпретатор выведет сообщение о фатальной ошибке, и программа будет остановлена. Таким образом язык Python приучает программистов писать красивый и понятный код, и, если в другом языке вас не приучили к хорошему стилю программиро- вания, язык Python быстро это исправит.
Поскольку программа на языке Python представляет собой обычный текстовый файл, его можно редактировать с помощью любого текстового редактора — например, того же Note- pad++. Можно использовать и другие, более специализированные программы такого рода:
PyScripter, PythonWin, UliPad, Eclipse с установленным модулем PyDev, Netbeans и др.
(полный список приемлемых редакторов можно найти на странице https://wiki.python.org/ moin/PythonEditors). Мы же в процессе изложения материала этой книги будем поль- зоваться интерактивным интерпретатором IDLE, который входит в состав стандартной по- ставки Python в Windows, — он идеально подходит для изучения Python.
Вторая часть книги посвящена рассмотрению версии 5.9.2 библиотеки PyQt, позволяющей создавать кроссплатформенные приложения с графическим интерфейсом. Библиотека очень проста в использовании и идеально подходит для разработки весьма серьезных оконных приложений. Пользуясь исключительно ее средствами, мы можем выводить на экран гра- фику практически любой сложности, работать с базами данных наиболее распространенных форматов, воспроизводить мультимедийные файлы, выводить документы на печать и экс- портировать их в популярный формат Adobe PDF.
А в самом конце мы с вами самостоятельно напишем на языке Python с применением биб- лиотеки PyQt полнофункциональное приложение «Судоку», предназначенное для создания и решения одноименных головоломок.
Все листинги из этой книги вы найдете в файлах
Listings.doc
(листинги из глав книги),
PyQt.doc
(дополнительные листинги с примерами на PyQt) и в папке sudoku
(листинги при- ложения «Судоку»)
,
электронный архив с которыми можно загрузить с FTP-сервера изда- тельства «БХВ-Петербург» по ссылке: ftp://ftp.bhv.ru/9785977539784.zip или со страницы книги на сайте www.bhv.ru (см. приложение).
Авторы книги желают вам приятного чтения и надеются, что она станет верным спутником в вашей грядущей карьере программиста! Тем не менее, не забывайте, что книги по про- граммированию нужно не только читать, — весьма желательно выполнять все имеющиеся в них примеры, а также экспериментировать, что-либо в этих примерах изменяя.

ЧАСТЬ
I
Основы языка Python
Глава 1.
Первые шаги
Глава 2.
Переменные
Глава 3.
Операторы
Глава 4.
Условные операторы и циклы
Глава 5.
Числа
Глава 6.
Строки и двоичные данные
Глава 7.
Регулярные выражения
Глава 8.
Списки, кортежи, множества и диапазоны
Глава 9.
Словари
Глава 10. Работа с датой и временем
Глава 11. Пользовательские функции
Глава 12. Модули и пакеты
Глава 13. Объектно-ориентированное программирование
Глава 14. Обработка исключений
Глава 15. Итераторы, контейнеры и перечисления
Глава 16. Работа с файлами и каталогами


ГЛ А В А
1
Первые шаги
Прежде чем мы начнем рассматривать синтаксис языка, необходимо сделать два замечания.
Во-первых, как уже было отмечено во введении, не забывайте, что книги по программиро- ванию нужно не только читать, — весьма желательно выполнять все имеющиеся в них примеры, а также экспериментировать, что-нибудь в этих примерах изменяя. Поэтому, если вы удобно устроились на диване и настроились просто читать, у вас практически нет шан- сов изучить язык. Чем больше вы будете делать самостоятельно, тем большему научитесь.
Ну что, приступим к изучению языка? Python достоин того, чтобы его знал каждый про- граммист!
В
НИМАНИЕ
!
Начиная с версии 3.5, Python более не поддерживает Windows XP. В связи с этим в книге не будут описываться моменты, касающиеся его применения под этой версией операцион- ной системы.
1.1. Установка Python
Вначале необходимо установить на компьютер интерпретатор Python (его также называют исполняющей средой).
1. Для загрузки дистрибутива заходим на страницу https://www.python.org/downloads/ и в списке доступных версий щелкаем на гиперссылке Python 3.6.3 (эта версия является самой актуальной из стабильных версий на момент подготовки книги). На открывшейся странице находим раздел Files и щелкаем на гиперссылке Windows x86 executable installer
(32-разрядная редакция интерпретатора) или Windows x86-64 executable installer
(его 64-разрядная редакция) — в зависимости от версии вашей операционной системы. В результате на наш компьютер будет загружен файл python-3.6.3.exe или python-3.6.3-amd64.exe соответственно. Затем запускаем загруженный файл двойным щелчком на нем.
2. В открывшемся окне (рис. 1.1) проверяем, установлен ли флажок Install launcher for all users (recommended)
(Установить исполняющую среду для всех пользователей), уста- навливаем флажок Add Python 3.6 to PATH (Добавить Python 3.6 в список путей пере- менной PATH) и нажимаем кнопку Customize installation (Настроить установку).
3. В следующем диалоговом окне (рис. 1.2) нам предлагается выбрать устанавливаемые компоненты. Оставляем установленными все флажки, представляющие эти компоненты, и нажимаем кнопку Next.

20
Часть I. Основы языка Python
Рис. 1.1. Установка Python. Шаг 1
Рис. 1.2. Установка Python. Шаг 2 4. На следующем шаге (рис. 1.3) мы зададим некоторые дополнительные настройки и вы- берем путь установки. Проверим, установлены ли флажки Associate files with Python
(requires the py launcher)
(Ассоциировать файлы с Python), Create shortcuts for installed applications
(Создать ярлыки для установленных приложений), Add Python to environment variables
(Добавить Python в переменные окружения) и Precompile standard library
(Предварительно откомпилировать стандартную библиотеку), и уста- новим флажок Install for all users (Установить для всех пользователей).

Глава 1. Первые шаги
21
Рис. 1.3. Установка Python. Шаг 3
В
НИМАНИЕ
!
Некоторые параметры при установке Python приходится задавать по нескольку раз на раз- ных шагах. Вероятно, это недоработка разработчиков инсталлятора.
Теперь уточним путь, по которому будет установлен Python. Изначально нам предлага- ется установить интерпретатор по пути c:\Program Files\Python36
. Можно сделать и так, но тогда при установке любой дополнительной библиотеки понадобится запускать командную строку с повышенными правами, иначе библиотека не установится.
Авторы книги рекомендуют установить Python по пути c:\Python36
, т. е. непосредствен- но в корень диска (см. рис. 1.3). В этом случае мы избежим проблем при установке дополнительных библиотек.
Задав все необходимые параметры, нажимаем кнопку Install и положительно отвечаем на появившееся на экране предупреждение UAC.
5. После завершения установки откроется окно, изображенное на рис. 1.4. Нажимаем в нем кнопку Close для выхода из программы установки.
В результате установки исходные файлы интерпретатора будут скопированы в папку
C:\Python36
. В этой папке вы найдете два исполняемых файла: python.exe и pythonw.exe
Файл python.exe предназначен для выполнения консольных приложений. Именно эта про- грамма запускается при двойном щелчке на файле с расширением py
. Файл pythonw.exe служит для запуска оконных приложений (при двойном щелчке на файле с расширени- ем pyw
) — в этом случае окно консоли выводиться не будет.
Итак, если выполнить двойной щелчок на файле python.exe
, то интерактивная оболочка за- пустится в окне консоли (рис. 1.5). Символы
>>>
в этом окне означают приглашение для ввода инструкций на языке Python. Если после этих символов ввести, например,
2 + 2
и нажать клавишу , то на следующей строке сразу будет выведен результат выполне- ния, а затем опять приглашение для ввода новой инструкции. Таким образом, это окно можно использовать в качестве калькулятора, а также для изучения языка.

22
Часть I. Основы языка Python
Рис. 1.4. Установка Python. Шаг 4
Рис. 1.5. Интерактивная оболочка
Открыть это же окно можно, выбрав пункт Python 3.6 (32-bit) или Python 3.6 (64-bit) в ме- ню Пуск | Программы (Все программы) | Python 3.6.
Однако для изучения языка, а также для создания и редактирования файлов с программами, лучше пользоваться редактором IDLE, который входит в состав установленных компонен- тов. Для запуска этого редактора в меню Пуск | Программы (Все программы) | Python 3.6 выбираем пункт IDLE (Python 3.6 32-bit) или IDLE (Python 3.6 64-bit). В результате от- кроется окно Python Shell (рис. 1.6), которое выполняет все функции интерактивной обо- лочки, но дополнительно производит подсветку синтаксиса, выводит подсказки и др. Имен- но этим редактором мы будем пользоваться в процессе изучения материала книги. Более подробно редактор IDLE мы рассмотрим немного позже.
1   2   3   4   5   6   7   8   9   ...   83


написать администратору сайта