本文转载自:http://blog.csdn.net/jcodeer/article/details/1823548

'''Tkinter教程之Event篇(2)'''
Tkinter教程之Event篇(2)-LMLPHP'''5.测试离开(Leave)事件'''
Tkinter教程之Event篇(2)-LMLPHP# -*- coding: cp936 -*-
Tkinter教程之Event篇(2)-LMLPHP# leave:鼠标离开时产生此事件
Tkinter教程之Event篇(2)-LMLPHPfrom Tkinter import *
Tkinter教程之Event篇(2)-LMLPHProot = Tk()
Tkinter教程之Event篇(2)-LMLPHPdef printCoords(event):
Tkinter教程之Event篇(2)-LMLPHP    print event.x,event.y
Tkinter教程之Event篇(2)-LMLPHP# 创建第一个Button,并将它与Enter事件绑定
Tkinter教程之Event篇(2)-LMLPHPbt1 = Button(root,text = 'leftmost button')
Tkinter教程之Event篇(2)-LMLPHPbt1.bind('<Leave>',printCoords)
Tkinter教程之Event篇(2)-LMLPHP
Tkinter教程之Event篇(2)-LMLPHPbt1.grid()
Tkinter教程之Event篇(2)-LMLPHP
Tkinter教程之Event篇(2)-LMLPHProot.mainloop()
Tkinter教程之Event篇(2)-LMLPHP# 分别测试Leave事件,只是在离开组件是会产生此事件。
Tkinter教程之Event篇(2)-LMLPHP'''6.响应特殊键(Special Key)'''
Tkinter教程之Event篇(2)-LMLPHP# -*- coding: cp936 -*-
Tkinter教程之Event篇(2)-LMLPHP# 键盘特殊键事件
Tkinter教程之Event篇(2)-LMLPHPfrom Tkinter import *
Tkinter教程之Event篇(2)-LMLPHProot = Tk()
Tkinter教程之Event篇(2)-LMLPHPdef printCoords(event):
Tkinter教程之Event篇(2)-LMLPHP    print 'event.char = ',event.char
Tkinter教程之Event篇(2)-LMLPHP    print 'event.keycode = ',event.keycode
Tkinter教程之Event篇(2)-LMLPHP# 创建第一个Button,并将它与BackSpace键绑定
Tkinter教程之Event篇(2)-LMLPHPbt1 = Button(root,text = 'Press BackSpace')
Tkinter教程之Event篇(2)-LMLPHPbt1.bind('<BackSpace>',printCoords)
Tkinter教程之Event篇(2)-LMLPHP
Tkinter教程之Event篇(2)-LMLPHP# 创建二个Button,并将它与回车键绑定
Tkinter教程之Event篇(2)-LMLPHPbt2 = Button(root,text = 'Press Enter')
Tkinter教程之Event篇(2)-LMLPHPbt2.bind('<Return>',printCoords)
Tkinter教程之Event篇(2)-LMLPHP
Tkinter教程之Event篇(2)-LMLPHP# 创建第三个Button,并将它与F5键绑定
Tkinter教程之Event篇(2)-LMLPHPbt3 = Button(root,text = 'F5')
Tkinter教程之Event篇(2)-LMLPHPbt3.bind('<F5>',printCoords)
Tkinter教程之Event篇(2)-LMLPHP
Tkinter教程之Event篇(2)-LMLPHP# 创建第4个Button,并将它与左Shift键绑定,与参考上说法一致
Tkinter教程之Event篇(2)-LMLPHPbt4 = Button(root,text = 'Left Shift')
Tkinter教程之Event篇(2)-LMLPHPbt4.bind('<Shift_L>',printCoords)
Tkinter教程之Event篇(2)-LMLPHP
Tkinter教程之Event篇(2)-LMLPHP# 创建第5个Button,并将它与右Shift键绑定,与参考上说法一致
Tkinter教程之Event篇(2)-LMLPHPbt5 = Button(root,text = 'Right Shift')
Tkinter教程之Event篇(2)-LMLPHPbt5.bind('<Shift_R>',printCoords)
Tkinter教程之Event篇(2)-LMLPHP
Tkinter教程之Event篇(2)-LMLPHP
Tkinter教程之Event篇(2)-LMLPHP# 将焦点设置到第1个Button上
Tkinter教程之Event篇(2)-LMLPHPbt1.focus_set()
Tkinter教程之Event篇(2)-LMLPHPbt1.grid()
Tkinter教程之Event篇(2)-LMLPHPbt2.grid()
Tkinter教程之Event篇(2)-LMLPHPbt3.grid()
Tkinter教程之Event篇(2)-LMLPHPbt4.grid()
Tkinter教程之Event篇(2)-LMLPHPbt5.grid()
Tkinter教程之Event篇(2)-LMLPHP
Tkinter教程之Event篇(2)-LMLPHProot.mainloop()
Tkinter教程之Event篇(2)-LMLPHP# 各个组件间焦点的切换可以使用TAB键。
Tkinter教程之Event篇(2)-LMLPHP# 特殊键    Cancel/Break/BackSpace/Tab/Return/Sift_L/Shift_R/Control_L/Control_R/Alt_L/Alt_R/Pause
Tkinter教程之Event篇(2)-LMLPHP#        Caps_Loack/Escape/Prior(Page Up)/Next(Page Down)/End/Home/Left/Up/Right/Down/Print/Insert/Delete/
Tkinter教程之Event篇(2)-LMLPHP#        F1-12/Num_Lock/Scroll_Lock
Tkinter教程之Event篇(2)-LMLPHP# 这些键的char是不可打印的,可以使用event.keycode查看。
Tkinter教程之Event篇(2)-LMLPHP'''7.响应所有的按键(Key)事件'''
Tkinter教程之Event篇(2)-LMLPHP# -*- coding: cp936 -*-
Tkinter教程之Event篇(2)-LMLPHP# Key:处理所有的键盘事件
Tkinter教程之Event篇(2)-LMLPHPfrom Tkinter import *
Tkinter教程之Event篇(2)-LMLPHProot = Tk()
Tkinter教程之Event篇(2)-LMLPHPdef printCoords(event):
Tkinter教程之Event篇(2)-LMLPHP    print 'event.char = ',event.char
Tkinter教程之Event篇(2)-LMLPHP    print 'event.keycode = ',event.keycode
Tkinter教程之Event篇(2)-LMLPHP# 创建第一个Button,并将它与Key键绑定
Tkinter教程之Event篇(2)-LMLPHPbt1 = Button(root,text = 'Press BackSpace')
Tkinter教程之Event篇(2)-LMLPHPbt1.bind('<Key>',printCoords)
Tkinter教程之Event篇(2)-LMLPHP
Tkinter教程之Event篇(2)-LMLPHP# 将焦点设置到第1个Button上
Tkinter教程之Event篇(2)-LMLPHPbt1.focus_set()
Tkinter教程之Event篇(2)-LMLPHPbt1.grid()
Tkinter教程之Event篇(2)-LMLPHP
Tkinter教程之Event篇(2)-LMLPHProot.mainloop()
Tkinter教程之Event篇(2)-LMLPHP# 处理所有的按键事件,如果是上例的特殊键,event.char返回为空;其它情况下为这个键的值。
Tkinter教程之Event篇(2)-LMLPHP# 如果输入大写字母(即上档键值),按下Shift键时就会有Key的事件触发。即回将用两次:一次为Shift本身,另一次为Shift+ Kye的实际键值。
Tkinter教程之Event篇(2)-LMLPHP'''8.只处理指定的按键消息'''
Tkinter教程之Event篇(2)-LMLPHP# -*- coding: cp936 -*-
Tkinter教程之Event篇(2)-LMLPHP# a:只处理指定的按键消息
Tkinter教程之Event篇(2)-LMLPHPfrom Tkinter import *
Tkinter教程之Event篇(2)-LMLPHProot = Tk()
Tkinter教程之Event篇(2)-LMLPHPdef printCoords(event):
Tkinter教程之Event篇(2)-LMLPHP    print 'event.char = ',event.char
Tkinter教程之Event篇(2)-LMLPHP    print 'event.keycode = ',event.keycode
Tkinter教程之Event篇(2)-LMLPHP# 创建第一个Button,并将它与键'a'绑定
Tkinter教程之Event篇(2)-LMLPHPbt1 = Button(root,text = 'Press BackSpace')
Tkinter教程之Event篇(2)-LMLPHPbt1.bind('a',printCoords)
Tkinter教程之Event篇(2)-LMLPHP
Tkinter教程之Event篇(2)-LMLPHP# 创建二个Button,并将它与按下spacebar是触发事件
Tkinter教程之Event篇(2)-LMLPHPbt2 = Button(root,text = 'Press spacebar')
Tkinter教程之Event篇(2)-LMLPHPbt2.bind('<space>',printCoords)
Tkinter教程之Event篇(2)-LMLPHP
Tkinter教程之Event篇(2)-LMLPHP# 创建第三个Button,并将它与'<'键绑定
Tkinter教程之Event篇(2)-LMLPHPbt3 = Button(root,text = 'less than key')
Tkinter教程之Event篇(2)-LMLPHPbt3.bind('<less>',printCoords)
Tkinter教程之Event篇(2)-LMLPHP
Tkinter教程之Event篇(2)-LMLPHP# 将焦点设置到第1个Button上
Tkinter教程之Event篇(2)-LMLPHPbt1.focus_set()
Tkinter教程之Event篇(2)-LMLPHP
Tkinter教程之Event篇(2)-LMLPHPbt1.grid()
Tkinter教程之Event篇(2)-LMLPHPbt2.grid()
Tkinter教程之Event篇(2)-LMLPHPbt3.grid()
Tkinter教程之Event篇(2)-LMLPHP
Tkinter教程之Event篇(2)-LMLPHProot.mainloop()
Tkinter教程之Event篇(2)-LMLPHP# 一般的按键直接使用就可以了,这样书写'key',不是'<key>';
Tkinter教程之Event篇(2)-LMLPHP# 但有两个需要特别注意:空格与小于的处理,使用方式为'<space>和<less>
Tkinter教程之Event篇(2)-LMLPHP'''9.使用组合键响应事件'''
Tkinter教程之Event篇(2)-LMLPHP# -*- coding: cp936 -*-
Tkinter教程之Event篇(2)-LMLPHP# 组合键(Control/Alt/Shift)
Tkinter教程之Event篇(2)-LMLPHPfrom Tkinter import *
Tkinter教程之Event篇(2)-LMLPHProot = Tk()
Tkinter教程之Event篇(2)-LMLPHPdef printCoords(event):
Tkinter教程之Event篇(2)-LMLPHP    print 'event.char = ',event.char
Tkinter教程之Event篇(2)-LMLPHP    print 'event.keycode = ',event.keycode
Tkinter教程之Event篇(2)-LMLPHP# 创建第一个Button,并将它与键Shift - Up绑定
Tkinter教程之Event篇(2)-LMLPHPbt1 = Button(root,text = 'Press Shift - Up')
Tkinter教程之Event篇(2)-LMLPHPbt1.bind('<Shift-Up>',printCoords)
Tkinter教程之Event篇(2)-LMLPHP
Tkinter教程之Event篇(2)-LMLPHP# 创建二个Button,并将它与按下Control-Alt-a时触发事件
Tkinter教程之Event篇(2)-LMLPHPbt2 = Button(root,text = 'Control-Alt-a')
Tkinter教程之Event篇(2)-LMLPHPbt2.bind('<Control-Alt-a>',printCoords)
Tkinter教程之Event篇(2)-LMLPHP
Tkinter教程之Event篇(2)-LMLPHP# 下面的按键处理将无法接受
Tkinter教程之Event篇(2)-LMLPHP# 创建第三个Button,并将它与'Control-Alt'键绑定
Tkinter教程之Event篇(2)-LMLPHP# bt3 = Button(root,text = 'Control-Alt')
Tkinter教程之Event篇(2)-LMLPHP# bt3.bind('<Control-Alt>',printCoords)
Tkinter教程之Event篇(2)-LMLPHP
Tkinter教程之Event篇(2)-LMLPHP
Tkinter教程之Event篇(2)-LMLPHP# 将焦点设置到第1个Button上
Tkinter教程之Event篇(2)-LMLPHPbt1.focus_set()
Tkinter教程之Event篇(2)-LMLPHPbt1.grid()
Tkinter教程之Event篇(2)-LMLPHPbt2.grid()
Tkinter教程之Event篇(2)-LMLPHP
Tkinter教程之Event篇(2)-LMLPHProot.mainloop()
Tkinter教程之Event篇(2)-LMLPHP# 使用Control/Alt/Shift与其它按键组合,但不能单独的使用Control/Alt组合。
Tkinter教程之Event篇(2)-LMLPHP'''10.改变组件大小事件'''
Tkinter教程之Event篇(2)-LMLPHP# -*- coding: cp936 -*-
Tkinter教程之Event篇(2)-LMLPHP# configure:改变组件大小事件
Tkinter教程之Event篇(2)-LMLPHPfrom Tkinter import *
Tkinter教程之Event篇(2)-LMLPHProot = Tk()
Tkinter教程之Event篇(2)-LMLPHPdef printSize(event):
Tkinter教程之Event篇(2)-LMLPHP    print (event.width,event.height)
Tkinter教程之Event篇(2)-LMLPHProot.bind('<Configure>',printSize)
Tkinter教程之Event篇(2)-LMLPHP
Tkinter教程之Event篇(2)-LMLPHProot.mainloop()
Tkinter教程之Event篇(2)-LMLPHP# 当组件的大小改变时触发。evnet.width/height分别返回改变后的宽度和高度。

05-04 11:16