Настройка на этапе конструирования

nastrojka na etape konstruirovaniya Экскурсия по tkinter, часть 1

Еще одна альтернатива, о которой следует упомянуть: обратите внимание, как в примере 8.32 выполняется настройка и компоновка каждого прикрепляемого демонстрационного фрейма:

def addComponents(root):

for demo in demoModules:

module = __import__(demo) # импортировать по имени в виде строки

part = module.Demo(root) # прикрепить экземпляр

part.config(bd=2, relief=GROOVE) # или передать параметры

#  конструктору Demo() part.pack(side=LEFT, expand=YES, fill=BOTH) # растягивать

#                                                 вместе с окном

Однако благодаря тому что демонстрационные классы поддерживают параметры настройки, используя аргумент **options, мы могли бы выполнять настройки прямо на этапе создания. Например, если изменить реализацию сценария, как показано ниже, он воспроизведет несколько отличающееся окно, изображенное на рис. 8.33 (для иллюстрации несколько растянутое по горизонтали; вы найдете эту реализацию в файле demoAllfrmridge.py в пакете с примерами):

def addComponents(root):

for demo in demoModules:

module = __import__(demo) # импортировать по имени в виде строки part = module.Demo(root, bd=6, relief=RIDGE) # прикрепить, настроить part.pack(side=LEFT, expand=YES, fill=BOTH) # экземпляр так, чтобы он # растягивался с окном

Рис. 8.33. demoAll_frm: настройка на этапе конструирования

 

Поскольку демонстрационные классы одновременно являются подклассами Frame и поддерживают привычный протокол передачи аргументов конструкторов, они являются настоящими виджетами — специализированными фреймами tkinter, реализующими прикрепляемые пакеты виджетов, и обеспечивающими гибкие возможности настройки.

В главе 7 было показано, что такое прикрепление вложенных фреймов является лишь одним из способов повторного использования программного кода реализации графических интерфейсов, оформленного в виде классов. Столь же просто можно организовывать такие интерфейсы путем создания подклассов, а не встраивания. Однако в данном случае нас больше интересует применение существующего пакета виджетов, чем его изменение, поэтому прием встраивания полностью соответствует нашим потребностям. В следующих двух разделах показаны еще два способа представления таких пакетов виджетов пользователям — в виде независимых окон и в виде автономных программ.

Использованная литература:
Марк Лутц — Программирование на Python, 4-е издание, I том, 2011

Оцените статью
Секреты программирования
Добавить комментарий