Общие черты поведения

obshhie cherty povedeniya Графические интерфейсы пользователя

Сценарий в примере 7.18 стандартизирует поведение — он демонстрирует возможность настройки виджетов путем создания подклассов вместо передачи параметров. Экземпляр класса HelloButton является настоящей кнопкой — при ее создании параметры настройки, такие как text, передаются как обычно. Но можно также определить обработчик событий, переопределив в подклассе метод callback, как показано в примере 7.19.

Пример 7.19. PP4E\Gui\Intro\gui5b.py

from gui5 import HelloButton

class MyButton(HelloButton): # подкласс класса HelloButton

def callback(self): # переопределяет метод обработчика

print(“Ignoring press!…”) # события нажатия кнопки

if __name__ == ‘__main__’:

MyButton(None, text=’Hello subclass world’).mainloop()

Этот сценарий создает то же самое окно, но вместо завершения программы при нажатии кнопки MyButton происходит вывод сообщения в поток stdout и программа продолжает работу. Ниже показаны сообщения, выведенные в стандартный поток вывода после нескольких нажатий:

C:\\PP4E\Gui\Intro> python gui5b.py

Ignoring press!

Ignoring press!

Ignoring press!

Ignoring press!

Решить, как проще настраивать графические элементы — создавая подклассы или путем передачи им параметров, — это дело вкуса. Но нужно отметить, что библиотека Tk приобретает в Python настоящие объектноориентированные черты, поскольку объектно-ориентированным является сам язык Python — используя привычные приемы ООП, мы можем создавать свои подклассы виджетов. Такой подход позволяет определять не только общие черты поведения, но и общий внешний вид.

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

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