'''
Tkinter教程之Event篇(2)
'''
'''
5.测试离开(Leave)事件
'''
#
-*- coding: cp936 -*-
#
leave:鼠标离开时产生此事件
from
Tkinter
import
*
root
=
Tk()
def
printCoords(event):
print
event.x,event.y
#
创建第一个Button,并将它与Enter事件绑定
bt1
=
Button(root,text
=
'
leftmost button
'
)
bt1.bind(
'
<Leave>
'
,printCoords)
bt1.grid()
root.mainloop()
#
分别测试Leave事件,只是在离开组件是会产生此事件。
'''
6.响应特殊键(Special Key)
'''
#
-*- coding: cp936 -*-
#
键盘特殊键事件
from
Tkinter
import
*
root
=
Tk()
def
printCoords(event):
print
'
event.char =
'
,event.char
print
'
event.keycode =
'
,event.keycode
#
创建第一个Button,并将它与BackSpace键绑定
bt1
=
Button(root,text
=
'
Press BackSpace
'
)
bt1.bind(
'
<BackSpace>
'
,printCoords)
#
创建二个Button,并将它与回车键绑定
bt2
=
Button(root,text
=
'
Press Enter
'
)
bt2.bind(
'
<Return>
'
,printCoords)
#
创建第三个Button,并将它与F5键绑定
bt3
=
Button(root,text
=
'
F5
'
)
bt3.bind(
'
<F5>
'
,printCoords)
#
创建第4个Button,并将它与左Shift键绑定,与参考上说法一致
bt4
=
Button(root,text
=
'
Left Shift
'
)
bt4.bind(
'
<Shift_L>
'
,printCoords)
#
创建第5个Button,并将它与右Shift键绑定,与参考上说法一致
bt5
=
Button(root,text
=
'
Right Shift
'
)
bt5.bind(
'
<Shift_R>
'
,printCoords)
#
将焦点设置到第1个Button上
bt1.focus_set()
bt1.grid()
bt2.grid()
bt3.grid()
bt4.grid()
bt5.grid()
root.mainloop()
#
各个组件间焦点的切换可以使用TAB键。
#
特殊键 Cancel/Break/BackSpace/Tab/Return/Sift_L/Shift_R/Control_L/Control_R/Alt_L/Alt_R/Pause
#
Caps_Loack/Escape/Prior(Page Up)/Next(Page Down)/End/Home/Left/Up/Right/Down/Print/Insert/Delete/
#
F1-12/Num_Lock/Scroll_Lock
#
这些键的char是不可打印的,可以使用event.keycode查看。
'''
7.响应所有的按键(Key)事件
'''
#
-*- coding: cp936 -*-
#
Key:处理所有的键盘事件
from
Tkinter
import
*
root
=
Tk()
def
printCoords(event):
print
'
event.char =
'
,event.char
print
'
event.keycode =
'
,event.keycode
#
创建第一个Button,并将它与Key键绑定
bt1
=
Button(root,text
=
'
Press BackSpace
'
)
bt1.bind(
'
<Key>
'
,printCoords)
#
将焦点设置到第1个Button上
bt1.focus_set()
bt1.grid()
root.mainloop()
#
处理所有的按键事件,如果是上例的特殊键,event.char返回为空;其它情况下为这个键的值。
#
如果输入大写字母(即上档键值),按下Shift键时就会有Key的事件触发。即回将用两次:一次为Shift本身,另一次为Shift+ Kye的实际键值。
'''
8.只处理指定的按键消息
'''
#
-*- coding: cp936 -*-
#
a:只处理指定的按键消息
from
Tkinter
import
*
root
=
Tk()
def
printCoords(event):
print
'
event.char =
'
,event.char
print
'
event.keycode =
'
,event.keycode
#
创建第一个Button,并将它与键'a'绑定
bt1
=
Button(root,text
=
'
Press BackSpace
'
)
bt1.bind(
'
a
'
,printCoords)
#
创建二个Button,并将它与按下spacebar是触发事件
bt2
=
Button(root,text
=
'
Press spacebar
'
)
bt2.bind(
'
<space>
'
,printCoords)
#
创建第三个Button,并将它与'<'键绑定
bt3
=
Button(root,text
=
'
less than key
'
)
bt3.bind(
'
<less>
'
,printCoords)
#
将焦点设置到第1个Button上
bt1.focus_set()
bt1.grid()
bt2.grid()
bt3.grid()
root.mainloop()
#
一般的按键直接使用就可以了,这样书写'key',不是'<key>';
#
但有两个需要特别注意:空格与小于的处理,使用方式为'<space>和<less>
'''
9.使用组合键响应事件
'''
#
-*- coding: cp936 -*-
#
组合键(Control/Alt/Shift)
from
Tkinter
import
*
root
=
Tk()
def
printCoords(event):
print
'
event.char =
'
,event.char
print
'
event.keycode =
'
,event.keycode
#
创建第一个Button,并将它与键Shift - Up绑定
bt1
=
Button(root,text
=
'
Press Shift - Up
'
)
bt1.bind(
'
<Shift-Up>
'
,printCoords)
#
创建二个Button,并将它与按下Control-Alt-a时触发事件
bt2
=
Button(root,text
=
'
Control-Alt-a
'
)
bt2.bind(
'
<Control-Alt-a>
'
,printCoords)
#
下面的按键处理将无法接受
#
创建第三个Button,并将它与'Control-Alt'键绑定
#
bt3 = Button(root,text = 'Control-Alt')
#
bt3.bind('<Control-Alt>',printCoords)
#
将焦点设置到第1个Button上
bt1.focus_set()
bt1.grid()
bt2.grid()
root.mainloop()
#
使用Control/Alt/Shift与其它按键组合,但不能单独的使用Control/Alt组合。
'''
10.改变组件大小事件
'''
#
-*- coding: cp936 -*-
#
configure:改变组件大小事件
from
Tkinter
import
*
root
=
Tk()
def
printSize(event):
print
(event.width,event.height)
root.bind(
'
<Configure>
'
,printSize)
root.mainloop()
#
当组件的大小改变时触发。evnet.width/height分别返回改变后的宽度和高度。
python 使用tkinter 执行交互指令 vim python tkinter event
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
使用python的原始模块与网站交互数据 代码块 网络测试