'''
Tkinter教程之Event篇(1)
'''
#
事件的使用方法
'''
1.测试鼠标点击(Click)事件
'''
#
-*- coding: cp936 -*-
#
<Button-1>:鼠标左击事件
#
<Button-2>:鼠标中击事件
#
<Button-3>:鼠标右击事件
#
<Double-Button-1>:双击事件
#
<Triple-Button-1>:三击事件
from
Tkinter
import
*
root
=
Tk()
def
printCoords(event):
print
event.x,event.y
#
创建第一个Button,并将它与左键事件绑定
bt1
=
Button(root,text
=
'
leftmost button
'
)
bt1.bind(
'
<Button-1>
'
,printCoords)

#
创建二个Button,并将它与中键事件绑定
bt2
=
Button(root,text
=
'
middle button
'
)
bt2.bind(
'
<Button-2>
'
,printCoords)

#
创建第三个Button,并将它与右击事件绑定
bt3
=
Button(root,text
=
'
rightmost button
'
)
bt3.bind(
'
<Button-3>
'
,printCoords)

#
创建第四个Button,并将它与双击事件绑定
bt4
=
Button(root,text
=
'
double click
'
)
bt4.bind(
'
<Double-Button-1>
'
,printCoords)

#
创建第五个Button,并将它与三击事件绑定
bt5
=
Button(root, text
=
'
triple click
'
)
bt5.bind(
'
<Triple-Button-1>
'
,printCoords)

bt1.grid()
bt2.grid()
bt3.grid()
bt4.grid()
bt5.grid()

root.mainloop()
#
分别测试鼠标的事件,回调函数的参数event中(x,y)表示当前点击的坐标值
'''
2.测试鼠标的移动(Motion)事件
'''
#
-*- coding: cp936 -*-
#
<Bx-Motion>:鼠标移动事件,x=[1,2,3]分别表示左、中、右鼠标操作。
from
Tkinter
import
*
root
=
Tk()
def
printCoords(event):
print
event.x,event.y
#
创建第一个Button,并将它与左键移动事件绑定
bt1
=
Button(root,text
=
'
leftmost button
'
)
bt1.bind(
'
<B1-Motion>
'
,printCoords)

#
创建二个Button,并将它与中键移动事件绑定
bt2
=
Button(root,text
=
'
middle button
'
)
bt2.bind(
'
<B2-Motion>
'
,printCoords)

#
创建第三个Button,并将它与右击移动事件绑定
bt3
=
Button(root,text
=
'
rightmost button
'
)
bt3.bind(
'
<B3-Motion>
'
,printCoords)


bt1.grid()
bt2.grid()
bt3.grid()

root.mainloop()
#
分别测试鼠标的移动事件,只有当鼠标被按下后移动才回产生事件
'''
3.测试鼠标的释放(Relase)事件
'''
#
-*- coding: cp936 -*-
#
<ButtonRelease-x>鼠标释放事件,x=[1,2,3],分别表示鼠标的左、中、右键操作
from
Tkinter
import
*
root
=
Tk()
def
printCoords(event):
print
event.x,event.y
#
创建第一个Button,并将它与左键释放事件绑定
bt1
=
Button(root,text
=
'
leftmost button
'
)
bt1.bind(
'
<ButtonRelease-1>
'
,printCoords)

#
创建二个Button,并将它与中键释放事件绑定
bt2
=
Button(root,text
=
'
middle button
'
)
bt2.bind(
'
<ButtonRelease-2>
'
,printCoords)

#
创建第三个Button,并将它与右击释放事件绑定
bt3
=
Button(root,text
=
'
rightmost button
'
)
bt3.bind(
'
<ButtonRelease-3>
'
,printCoords)


bt1.grid()
bt2.grid()
bt3.grid()

root.mainloop()
#
分别测试鼠标的Relase事件,只有当鼠标被Relase后移动才回产生Relase事件
'''
4.进入(Enter)事件
'''
#
-*- coding: cp936 -*-
#
<Enter>:鼠标释放事件
from
Tkinter
import
*
root
=
Tk()
def
printCoords(event):
print
event.x,event.y
#
创建第一个Button,并将它与Enter事件绑定
bt1
=
Button(root,text
=
'
leftmost button
'
)
bt1.bind(
'
<Enter>
'
,printCoords)

bt1.grid()










































































































root.mainloop()
# 分别测试Enter事件,只是在第一次进入进回产生事件,在组件中移动不会产生Enter事件。