Обработка событий. Перехват событий

   
На этом шаге мы рассмотрим методы, используемые для перехвата событий.

   
Есть возможность установить перехват событий, при котором какой-либо компонент будет обрабатывать все события всех типов, что возникают во всех без исключения компонентах приложения,
включая и контейнеры. Для этого компоненты библиотеки Tkinter поддерживают следующие методы:

  • grab_set () - заставляет текущий компонент перехватывать все события всех типов, что возникают в приложении. Если ранее перехват был задан у другого компонента, он отменяется,
    поскольку только один компонент может перехватывать события:

      self.btnAll.grab_set()
      self.btnAll.bind("<Button>", self.button_handler)
    

       
    Теперь все без исключения события, возникающие в компонентах приложения, будут перехватываться кнопкой btnAll. Если возникшее событие относится к типу Button, будет вызван
    метод-обработчик button_handler().

       
    Метод grab_set() задает обычный, или локальный, перехват событий, при котором компонентом перехватываются только события, возникающие в текущем приложении;

  • grab_set_global () - то же самое, что grab_set(), но устанавливает перехват событий, возникающих во всех запущенных в текущий момент приложениях (глобальный перехват
    событий);


    Метод grab_set_global() может нарушить нормальное функционирование других приложений, так что его следует использовать с осторожностью.

  • grab_release () - отменяет перехват событий, ранее заданный для текущего компонента;
  • grab_current () - возвращает строковый идентификатор перехвата событий, если таковой был задан у текущего компонента. Если перехват событий не был задан, возвращает None;
  • grab_status() - возвращает строку "local", если для текущего компонента был задан обычный перехват событий, и "global", если был указан глобальный перехват.

   
На следующем шаге мы рассмотрим указание опций у компонентов.



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий