tkinter事件之bind

1.调用规则:窗体对象.bind(事件类型,回调函数)

2.<Button-1>表示鼠标左键单击,其中的1换成3表示右键被单击,为2的时候表示鼠标中键

  t=Label(root, text='标签')

  t.bind(<Button-1>, 函数名)  # 鼠标左键点击时调用函数

3.<KeyPress-A>表示A键被按下,其中的A可以换成其他的键位

4.<Control-V>表示按下的是Ctrl和V键,V可以换成其他键位

5.<F1>表示按下的是F1键,对于Fn系列的,都可以随便换

其中bind函数是定义在Misc类里面的,也就是说,这个bind可以被绝大多数组件类所使用

注意:若使用bind,则布局必须写在bind后无法会报AttributeError错

b = Button(root, text='确定').grid(row=2, column=1, stick=E)
b.bind('<Button-1>', reg)
此写法是错误的,执行结果会报AttributeError: 'NoneType' object has no attribute 'bind'

正确写法:
b = Button(root, text='确定')
b.bind('<Button-1>', reg)
b.grid(row=2, column=1, stick=E)

关于bind函数,还有两个版本:

1.可以在全程序级别的绑定,使用bind_all,它的参数类型和bind一样,它通常用于全局的快捷键,比如F1通常是用来打开帮助文档

2.还可以绑定某些类别,使用bind_class,它接受三个参数,第一个参数是类名,第二个参数是事件类型,第三个参数是相应的操作,比如w.bind_class(“Entry”,“<Control-V>”,my_paste)。它就是绑定了所有的所有的输入框的Ctrl+V表示粘贴

原文地址:https://www.cnblogs.com/huwang-sun/p/7064048.html