ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 05.12.2023
Просмотров: 816
Скачиваний: 3
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
12
Оглавление
27.3. Панели инструментов ......................................................................................................... 662 27.3.1. Класс QToolBar ....................................................................................................... 662 27.3.2. Класс QToolButton .................................................................................................. 664 27.4. Прикрепляемые панели ...................................................................................................... 665 27.5. Управление строкой состояния ......................................................................................... 667 27.6. MDI-приложения ................................................................................................................ 668 27.6.1. Класс QMdiArea ...................................................................................................... 668 27.6.2. Класс QMdiSubWindow ........................................................................................... 671 27.7. Добавление значка приложения в область уведомлений ................................................ 672
Глава 28. Мультимедиа .............................................................................................. 674 28.1. Класс QMediaPlayer ........................................................................................................... 674 28.2. Класс QVideoWidget ............................................................................................................ 683 28.3. Класс QMediaPlaylist .......................................................................................................... 686 28.4. Запись звука ........................................................................................................................ 689 28.4.1. Класс QAudioRecorder ............................................................................................ 689 28.4.2. Класс QAudioEncoderSettings ................................................................................ 692 28.5. Класс QSoundEffect ............................................................................................................. 695
Глава 29. Печать документов ................................................................................... 699 29.1. Основные средства печати ................................................................................................. 699 29.1.1. Класс QPrinter ......................................................................................................... 699 29.1.2. Вывод на печать...................................................................................................... 703 29.1.3. Служебные классы ................................................................................................. 708 29.1.3.1. Класс QPageSize....................................................................................... 708 29.1.3.2. Класс QPageLayout .................................................................................. 710 29.2. Задание параметров принтера и страницы ....................................................................... 712 29.2.1. Класс QPrintDialog ................................................................................................. 712 29.2.2. Класс QPageSetupDialog ........................................................................................ 714 29.3. Предварительный просмотр документов перед печатью ................................................ 716 29.3.1. Класс QPrintPreviewDialog .................................................................................... 716 29.3.2. Класс QPrintPreviewWidget .................................................................................... 719 29.4. Класс QPrinterInfo: получение сведений о принтере ....................................................... 721 29.5. Класс QPdfWriter: экспорт в формат PDF ........................................................................ 723
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.