События, производимые мышью

  • <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 приводит к закрытию главного окна.

Практическая работа

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: