На этом шаге мы рассмотрим методы, используемые для привязки и удаления обработчиков.
Для привязки обработчиков к событиям библиотека Tkinter предоставляет три метода, поддерживаемые всеми компонентами:
self.btnHello.bind("<ButtonRelease>", self.say_hello)
Если к тому же событию того же компонента ранее уже был привязан обработчик, последний будет удален. Однако, указав в параметре add строку "+", мы предпишем библиотеке Tkinter сохранить все привязанные ранее обработчики. В таком случае обработчики будут вызваны в том порядке, в котором была выполнена их привязка. Вот пример привязки к кнопке сразу трех обработчиков одного и того же события:
self.btnHello.bind("<ButtonRelease>", self.say_hello1) self.btnHello.bind("<ButtonRelease>", self.say_hello2, add="+") self.btnHello.bind("<ButtonRelease>", self.say_hello3, add="+")
В этом случае при возникновении события сначала будет вызван обработчик say_hello1(), потом - say_hello2() и, наконец, say_hello3();
self.bind_class("Button", "<ButtonRelease>", self.say_hello)
self.bind_all("<ButtonRelease>", self.say_hello)
Иногда возникает необходимость удалить привязанный ранее к событию обработчик. Для этого мы воспользуемся следующими тремя методами, также поддерживаемыми всеми компонентами:
Вот пример удаления обработчика:
self.btnHello.unbind("<ButtonRelease>", self.say_hello)
А вот пример удаления всех обработчиков указанного события:
self.btnGoodbye.unbind("<ButtonRelease>")
self.unbind_class("Button", "<ButtonRelease>")
self.unbind_all("<ButtonRelease>")
На следующем шаге мы рассмотрим события и их наименования.