В ответ на выполнение условий по протоколам и шаблонам GuiMaker клиентские подклассы получают фрейм, который умеет автоматически строить свои меню и панели инструментов по структурам данных шаблона. Если вы смотрели примеры создания меню в предыдущих главах, то сможете понять, что это большой шаг вперед, в смысле уменьшения объема программного кода. Класс GuiMaker также достаточно сообразителен и может экспортировать интерфейсы меню обоих стилей, с которыми мы встречались в главе 9:
GuiMakerWindowMenu
Реализует меню окон верхнего уровня в стиле Tk 8.0, которые удобно использовать в самостоятельных программах и всплывающих окнах.
GuiMakerFrameMenu
Реализует альтернативные меню, основанные на виджетах Frame/ Menubutton, которые удобно использовать для создания меню объектов, встраиваемых в виде компонентов в более крупные графические интерфейсы.
Оба класса создают панели инструментов, экспортируют одни и те же протоколы и ожидают получить одни и те же структуры шаблонов — они отличаются только способом обработки шаблонов меню. В действительности один из них является подклассом другого, специализирующим метод создания меню — два стиля отличаются только обработкой меню верхнего уровня (Menu с каскадами Menu, вместо Frame с Menubuttons).
Использованная литература:
Марк Лутц — Программирование на Python, 4-е издание, I том, 2011