- <Button-1> - щелчок левой кнопкой мыши
- <Button-2> - щелчок средней кнопкой мыши
- <Button-3> - щелчок правой кнопкой мыши
- <Double-Button-1> - двойной клик левой кнопкой мыши
- <Motion> - движение мыши
- и т. д.
Пример:
from tkinter import *
def b1(event):
root.title("Левая кнопка мыши")
def b3(event):
root.title("Правая кнопка мыши")
def move(event):
root.title("Движение мышью")
root = Tk()
root.minsize(width = 500, height=400)
root.bind('<Button-1>',b1)
root.bind('<Button-3>',b3)
root.bind('<Motion>',move)
root.mainloop()
В этой программе меняется надпись в заголовке главного окна в зависимости от того двигается мышь, щелкают левой или правой кнопкой мыши.
События, производимые с помощью клавиатуры
- Буквенные клавиши можно записывать без угловых скобок (например, 'L').
- Для неалфавитных клавиш существуют специальные зарезервированные слова
* <Return> - нажатие клавиши Enter;
* <space>- пробел;
* и т. д. - Сочетания клавиш пишутся через тире. Например:
* <Control-Shift> - одновременное нажатие клавиш Ctrl и Shift.
from tkinter import *
def exit_(event):
root.destroy()
def caption(event):
t = ent.get()
lbl.configure(text = t)
|
|
root = Tk()
ent = Entry(root, width = 40)
lbl = Label(root, width = 80)
ent.pack()
lbl.pack()
ent.bind('<Return>',caption)
root.bind('<Control-z>',exit_)
root.mainloop()
При нажатии клавиши Enter в пределах текстовой строки (ent) вызывается функция caption, которая помещает символы из текстовой строки (ent) в метку (lbl). Нажатие комбинации клавиш Ctrl + z приводит к закрытию главного окна.
Практическая работа
- Напишите следующую программу. На главном окне находится несколько флажков и текстовое поле. При щелчке левой кнопкой мыши в пределах текстового поля в нем должны отображаться значения включенных флажки (появляться сообщение о том, какие флажки включены), при щелчке правой кнопкой мыши — значения выключенных флажков.
- Напишите скрипт, генерирующий в окне два текстовых поля и рамку. Размер рамки можно менять с помощью вводимых значений в текстовые поля (определяют длину и ширину) и нажатии клавиши пробел на клавиатуре.