В этой главе мы продолжаем изучать создание графических интерфейсов пользователей с помощью Python и стандартной библиотеки tkinter, путем представления коллекции более сложных шаблонов и приемов программирования графических интерфейсов. В трех предшествующих главах мы познакомились с основами использования библиотеки tkinter. Здесь мы применим полученные знания для конструирования структур более высокого уровня, которые пригодятся в создании более крупных программ. То есть здесь мы перейдем к написанию собственного программного кода, реализующего программный слой над и вне базового набора инструментов tkinter, который с пользой будет применен в более практичных примерах далее в книге.
В этой главе мы рассмотрим следующие приемы:
• Реализация типичных операций с графическим интерфейсом в виде подмешиваемых классов
• Конструирование меню и панелей инструментов из шаблонных структур данных
• Добавление графических интерфейсов к инструментам командной строки
• Перенаправление потоков ввода-вывода в виджеты
• Динамическая переустановка обработчиков графического интерфейса
• Обертывание и автоматизация интерфейсов окон верхнего уровня
• Применение потоков выполнения и очередей для устранения блокирования графических интерфейсов
• Создание всплывающих окон в программах, не имеющих графического интерфейса
• Добавление графических интерфейсов в виде отдельных программ, подключаемых через сокеты и каналы
Как и другие главы этой книги, данная глава преследует двойную цель — не только изучение программирования графических интерфейсов, но и изучение более общих понятий программирования на языке Python, таких как объектно-ориентированное программирование (ООП) и повторное использование программного кода. Как мы увидим далее, создавая инструменты для работы с графическими интерфейсами на языке Python, мы упрощаем их применение в самых разных контекстах и программах.
Для связки со следующей главой эта глава завершается знакомством с панелями запуска PyDemos и PyGadgets — графических интерфейсов, используемых для запуска демонстрационных примеров. В книге приводится лишь малая часть этих программ, тем не менее мы рассмотрим их структуру достаточно подробно, чтобы вы могли самостоятельно исследовать их, отыскав в пакете с примерами.
Два предварительных замечания: во-первых, обязательно читайте программный код в листингах, выясняя подробности, отсутствующие в описании. Во-вторых, несмотря на небольшой объем примеров в этой главе, они демонстрируют приемы, которые найдут практическое применение в более реалистичных программах. Мы будем использовать эти приемы в более крупных примерах в следующей главе и на протяжении всей оставшейся части книги. Фактически разработанные здесь модули мы часто будем повторно использовать как инструменты в других программах из этой книги — программное обеспечение многократного использования должно использоваться снова и снова. Но для начала давайте приложим максимум усилий и создадим некоторые инструменты.
Использованная литература:
Марк Лутц — Программирование на Python, 4-е издание, I том, 2011