Блог веб разработки статьи | видеообзоры | исходный код

Блог веб разработки статьи | видеообзоры | исходный код

webfanat вконтакте webfanat youtube

tkinter события

tkinter события

Всем привет. В первой статье по питону мы с вами уже использовали метод обработки события 'клик левой кнопки мыши', пример:

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)
Щелчок левой кнопкой мыши tkinter

Здесь мы повесили обработчик события на главное окно программы. И теперь при клике по окну нашей программы у нас в консоль будет выводится сообщение.

С общей концепцией работы обработчика мы разобрались теперь давайте перейдем к рассмотрению других событий. До этого момента мы рассмотрели клик левой кнопки мыши , теперь:

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)
Обработка событий нажатия клавиш в tkinter

Заметьте что у нас выводятся только символьные и цифровые клавиши. Однако если мы просмотрим объект события event, то увидим что специальные клавиши также обрабатываются этим событием.

def fun(event):
    print(event)
window.bind("<Key>", fun)
События библиотеки tkinter3

На этом дорогие друзья у меня на сегодня все.

Желаю удачи и успехов! Пока!

Оцените статью:

Статьи

Комментарии

Внимание!!! Комментарий теперь перед публикацией проходит модерацию

Телемастер

21:18 03-08-2022

Спасибо! Получил удовольствие!

Галина

16:36 28-01-2021

Статья никакая: какой print? Вы для кого его вообще пишете в графическом интерфейсе?

Вячеслав

12:37 27-05-2020

Все бы так материал излагали. Спасибо большое!

Реклама

Запись экрана

Данное расширение позволяет записывать экран и выводит видео в формате webm