Найти в Дзене
programmer's notes (python and more)

Программирование на языке Python. Библиотека tkinter, события в окне, метод bind

Доброго времени суток, читатели, зрители моего канала programmer's notes. Не забывайте подписываться и писать свои комментарии к моим статьям и видео.

Объектно-ориентированное программирование (ООП) в Python | programmer's notes (python and more) | Дзен
Библиотека tkinter | programmer's notes (python and more) | Дзен

Обработка событий мыши и клавиатуры в окне на tkinter

Сегодня рассматриваем события в окне. Не все, конечно, только связанные с мышью и клавиатурой. И здесь tkinter предлагает очень простые решения.

Ниже (рисунок 1) представлена программа, обрабатывающая события мыши и клавиатуры (см. Рисунок 2). События мыши отображаются внизу окна в поле ввода. В частности координаты курсора мыши и какая клавиша нажата. При нажатии клавиши Esc предлагается выйти из программы.

Рисунок 1. Программа демонстрации обработки событий в окне. Текст программы см. ниже по ссылке
Рисунок 1. Программа демонстрации обработки событий в окне. Текст программы см. ниже по ссылке
primer351.py

Пояснения к программе.

  • Обратим внимание на метод Tk.bind() позволяющий связать событие с обработчиком: методом или просто функцией. События указываются в угловых скобках. <Button-1> - нажатие левой кнопки мыши, <Button-2> - нажатие средней кнопки мыши, <Button-3> - нажатие правой кнопки мыши, <Motion> - движение мыши, <KeyPress> - нажатие любой клавиши на клавиатуре.
  • Функции обработки событий получают в качестве параметра объект event, в котором, в частности, есть относительные координаты мыши (см. метод mv()). При обработке нажатия клавиш важным свойством объекта является свойство keycode. Для каждой клавише значение своё. Для любой клавиши можно вывести keycode на консоль и узнать значение. В частности для Esc это значение равно 9, это значение мы и используем.
  • Наконец, мы использовали диалоговое окно (askyesno) модуля message, с ними мы ещё познакомимся в дальнейшем.

При написании программы были использованы материалы предыдуще статьи по данной теме.

Пока всё! Продолжение следует...

Пишите свои предложения и замечания, и занимайтесь программированием, а также проектированием баз данных, хотя бы для поддержания уровня интеллекта.

А эти события не заслуживают нашего внимания
А эти события не заслуживают нашего внимания