Телемастер
21:18 03-08-2022Спасибо! Получил удовольствие!
Всем привет. В первой статье по питону мы с вами уже использовали метод обработки события 'клик левой кнопки мыши', пример:
from tkinter import *
window = Tk()
button = Button(text="Нажмите")
def fun(event):
print("кнопка нажата")
button.bind("<Button-1>", fun)
button.pack()
window.mainloop()
Здесь в окне программы есть кнопка 'Нажмите'. И если мы ее нажмем у нас в консоль выведется сообщение 'кнопка нажата'. Установка обработчика события на кнопку происходит через метод bind() в котором указываются два аргумента:
- событие, в нашем случае это
- название функции, которая будет вызвана при обработке события
Заметьте что в функции которую мы вызываем через обработчик должен быть обязательно аргумент event(объект события).
Отмечу что обработчик событий через метод bind() мы можем вешать на любые элементы:
window = Tk()
def fun(event):
print("Клик левой кнопкой мыши")
window.bind("<Button-1>", fun)
Здесь мы повесили обработчик события на главное окно программы. И теперь при клике по окну нашей программы у нас в консоль будет выводится сообщение.
С общей концепцией работы обработчика мы разобрались теперь давайте перейдем к рассмотрению других событий. До этого момента мы рассмотрели клик левой кнопки мыши
def fun(event):
print("Клик средней кнопки мыши(колесико)")
window.bind("<Button-2>", fun)
Здесь у нас уже при клике колесика мыши выводится сообщение. За клик средней кнопки мыши отвечает событие
За прокрутку колесика мыши
def fun(event):
print("Прокрутка колесика мыши")
window.bind("<MouseWheel>", fun)
событие
За правую кнопку мыши:
def fun(event):
print("Клик правой кнопкой мыши")
window.bind("<Button-3>", fun)
отвечает событие
Также есть двойной щелчок левой кнопки мыши:
def fun(event):
print("Двойной клик левой кнопки мыши")
window.bind("<Double-Button-1>", fun)
здесь используется событие
Еще мы можем отслеживать событие перемещения мыши:
def fun(event):
print("Мышка перемещается по окну программы")
window.bind("<Motion>", fun)
За перемещение мыши отвечает событие
Итак с событиями мыши мы более или менее разобрались теперь переходим к клавишам:
def fun(event):
print('Нажата клавиша Enter')
window.bind("<Return>", fun)
За обработку нажатия клавиши Enter отвечает событие
Обработка нажатия пробела происходит
def fun(event):
print('Нажата клавиша пробел')
window.bind("<space>", fun)
через событие
def fun(event):
print('Нажата клавиша символа s')
window.bind("<s>", fun)
Для обработки всех клавиш мы можем воспользоваться событием
def fun(event):
print("Нажата клавиша "+event.char)
window.bind("<Key>", fun)
Заметьте что у нас выводятся только символьные и цифровые клавиши. Однако если мы просмотрим объект события event, то увидим что специальные клавиши также обрабатываются этим событием.
def fun(event):
print(event)
window.bind("<Key>", fun)
На этом дорогие друзья у меня на сегодня все.
Желаю удачи и успехов! Пока!
Внимание!!! Комментарий теперь перед публикацией проходит модерацию
Спасибо! Получил удовольствие!
Статья никакая: какой print? Вы для кого его вообще пишете в графическом интерфейсе?
Все бы так материал излагали. Спасибо большое!