Выбрать главу

Поиск различий между деревьями....................................425

Запускаем сценарий........................................................428

Проверка резервных копий..............................................431

Отчет о различиях и другие идеи ...................................... 433

Поиск в деревьях каталогов..................................................435

grep, glob и find..............................................................436

Создание собственного модуля find...................................437

Удаление файлов с байт-кодом .........................................442

Visitor: обход каталогов «++»...............................................448

Редактирование файлов в деревьях каталогов (Visitor).........454

Глобальная замена в деревьях каталогов (Visitor) ...............456

Подсчет строк исходного программного кода (Visitor)..........458

Копирование деревьев каталогов

с помощью классов (Visitor).............................................460

Другие примеры обходчиков (внешние).............................462

Проигрывание медиафайлов................................................. 464

Модуль webbrowser.........................................................468

Модуль mimetypes..........................................................470

Запускаем сценарий........................................................473

Автоматизированный запуск программ (внешние примеры) ..... 473

Часть III. Программирование графических интерфейсов .... 477

Глава 7. Графические интерфейсы пользователя....................479

«Я здесь, я смотрю на тебя, детка» ........................................479

Темы программирования GUI...........................................479

Запуск примеров ............................................................ 481

Различные возможности создания GUI в Python......................483

Обзор tkinter......................................................................490

Практические преимущества tkinter ................................490

Документация tkinter ..................................................... 492

Расширения для tkinter...................................................492

Структура tkinter...........................................................495

Взбираясь по кривой обучения

программированию графических интерфейсов ........................ 497

«Hello World» в четыре строки (или меньше)......................497

Основы использования tkinter..........................................498

Создание виджетов ......................................................... 499

Менеджеры компоновки .................................................. 500

Запуск программ с графическим интерфейсом....................501

Альтернативные приемы использования tkinter ................. 502

Основы изменения размеров виджетов............................... 504

Настройка параметров графического элемента

и заголовка окна............................................................506

Еще одна версия в память о былых временах......................508

Добавление виджетов без их сохранения ............................ 508

Добавление кнопок и обработчиков.......................................511

Еще раз об изменении размеров виджетов: растягивание......512

Добавление пользовательских обработчиков...........................514

lambda-выражения как обработчики событий.....................515

Отложенные вызовы с применением

инструкций lambda и ссылок на объекты...........................516

Проблемы с областями видимости обработчиков.................518

Связанные методы как обработчики событий......................525

Объекты вызываемых классов как обработчики событий.....527

Другие протоколы обратного вызова в tkinter.....................528

Связывание событий.......................................................529

Добавление нескольких виджетов.........................................530

Еще раз об изменении размеров: обрезание.........................531

Прикрепление виджетов к фреймам..................................532

Порядок компоновки и прикрепление к сторонам ............... 533

Снова о параметрах expand и fill компоновки.....................534

Использование якорей вместо растягивания....................... 536

Настройка виджетов с помощью классов................................537

Стандартизация поведения и внешнего вида.......................538

Повторно используемые компоненты и классы........................ 540

Прикрепление классов компонентов ................................. 542

Расширение классов компонентов..................................... 544

Автономные классы-контейнеры ...................................... 546