Tkinter教程之Event篇(2)

来源:互联网 发布:二合一windows平板刷机 编辑:程序博客网 时间:2024/05/18 03:32
[python] view plain copy
  1. '''''Tkinter教程之Event篇(2)'''  
  2. '''''5.测试离开(Leave)事件'''  
  3. # -*- coding: utf-8 -*-  
  4. # leave:鼠标离开时产生此事件  
  5. from tkinter import *  
  6.   
  7. root = Tk()  
  8.   
  9.   
  10. def printCoords(event):  
  11.     print(event.x, event.y)  
  12.   
  13.   
  14. # 创建第一个Button,并将它与Leave事件绑定  
  15. bt1 = Button(root, text='leftmost button')  
  16. bt1.bind('<Leave>', printCoords)  
  17.   
  18. bt1.grid()  
  19.   
  20. root.mainloop()  
  21. # 分别测试Leave事件,只是在离开组件是会产生此事件。  

[python] view plain copy
  1. '''''6.响应特殊键(Special Key)'''  
  2. # -*- coding: utf-8 -*-  
  3. # 键盘特殊键事件  
  4. from tkinter import *  
  5.   
  6. root = Tk()  
  7.   
  8.   
  9. def printCoords(event):  
  10.     print('event.char = ', event.char)  
  11.     print('event.keycode = ', event.keycode)  
  12.   
  13.   
  14. # 创建第一个Button,并将它与BackSpace键绑定  
  15. bt1 = Button(root, text='Press BackSpace')  
  16. bt1.bind('<BackSpace>', printCoords)  
  17.   
  18. # 创建二个Button,并将它与回车键绑定  
  19. bt2 = Button(root, text='Press Enter')  
  20. bt2.bind('<Return>', printCoords)  
  21.   
  22. # 创建第三个Button,并将它与F5键绑定  
  23. bt3 = Button(root, text='F5')  
  24. bt3.bind('<F5>', printCoords)  
  25.   
  26. # 创建第4个Button,并将它与左Shift键绑定,与参考上说法一致  
  27. bt4 = Button(root, text='Left Shift')  
  28. bt4.bind('<Shift_L>', printCoords)  
  29.   
  30. # 创建第5个Button,并将它与右Shift键绑定,与参考上说法一致  
  31. bt5 = Button(root, text='Right Shift')  
  32. bt5.bind('<Shift_R>', printCoords)  
  33.   
  34. # 将焦点设置到第1个Button上  
  35. bt1.focus_set()  
  36. bt1.grid()  
  37. bt2.grid()  
  38. bt3.grid()  
  39. bt4.grid()  
  40. bt5.grid()  
  41.   
  42. root.mainloop()  
  43. # 各个组件间焦点的切换可以使用TAB键。  
  44. # 特殊键    Cancel/Break/BackSpace/Tab/Return/Sift_L/Shift_R/Control_L/Control_R/Alt_L/Alt_R/Pause  
  45. #        Caps_Loack/Escape/Prior(Page Up)/Next(Page Down)/End/Home/Left/Up/Right/Down/Print/Insert/Delete/  
  46. #        F1-12/Num_Lock/Scroll_Lock  
  47. # 这些键的char是不可打印的,可以使用event.keycode查看。  

[python] view plain copy
  1. '''''7.响应所有的按键(Key)事件'''  
  2. # -*- coding: utf-8 -*-  
  3. # Key:处理所有的键盘事件  
  4. from tkinter import *  
  5.   
  6. root = Tk()  
  7.   
  8.   
  9. def printCoords(event):  
  10.     print('event.char = ', event.char)  
  11.     print('event.keycode = ', event.keycode)  
  12.   
  13.   
  14. # 创建第一个Button,并将它与Key键绑定  
  15. bt1 = Button(root, text='Press BackSpace')  
  16. bt1.bind('<Key>', printCoords)  
  17.   
  18. # 将焦点设置到第1个Button上  
  19. bt1.focus_set()  
  20. bt1.grid()  
  21.   
  22. root.mainloop()  
  23. # 处理所有的按键事件,如果是上例的特殊键,event.char返回为空;其它情况下为这个键的值。  
  24. # 如果输入大写字母(即上档键值),按下Shift键时就会有Key的事件触发。即回将用两次:一次为Shift本身,另一次为Shift+ Kye的实际键值。  

[python] view plain copy
  1. '''''8.只处理指定的按键消息'''  
  2. # -*- coding: utf-8 -*-  
  3. # a:只处理指定的按键消息  
  4. from tkinter import *  
  5.   
  6. root = Tk()  
  7.   
  8.   
  9. def printCoords(event):  
  10.     print('event.char = ', event.char)  
  11.     print('event.keycode = ', event.keycode)  
  12.   
  13.   
  14. # 创建第一个Button,并将它与键'a'绑定  
  15. bt1 = Button(root, text='Press "a" ')  
  16. bt1.bind('a', printCoords)  
  17.   
  18. # 创建二个Button,并将它与按下spacebar是触发事件  
  19. bt2 = Button(root, text='Press spacebar')  
  20. bt2.bind('<space>', printCoords)  
  21.   
  22. # 创建第三个Button,并将它与'<'键绑定  
  23. bt3 = Button(root, text='less than key')  
  24. bt3.bind('<less>', printCoords)  
  25.   
  26. # 将焦点设置到第1个Button上  
  27. bt1.focus_set()  
  28.   
  29. bt1.grid()  
  30. bt2.grid()  
  31. bt3.grid()  
  32.   
  33. root.mainloop()  
  34. # 一般的按键直接使用就可以了,这样书写'key',不是'<key>';  
  35. # 但有两个需要特别注意:空格与小于的处理,使用方式为'<space>和<less>  

[python] view plain copy
  1. '''''9.使用组合键响应事件'''  
  2. # -*- coding: utf-8 -*-  
  3. # 组合键(Control/Alt/Shift)  
  4. from tkinter import *  
  5.   
  6. root = Tk()  
  7.   
  8.   
  9. def printCoords(event):  
  10.     print('event.char = ', event.char)  
  11.     print('event.keycode = ', event.keycode)  
  12.   
  13.   
  14. # 创建第一个Button,并将它与键Shift - Up绑定  
  15. bt1 = Button(root, text='Press Shift - Up')  
  16. bt1.bind('<Shift-Up>', printCoords)  
  17.   
  18. # 创建二个Button,并将它与按下Control-Alt-b时触发事件  
  19. bt2 = Button(root, text='Control-Alt-b')  
  20. bt2.bind('<Control-Alt-b>', printCoords)  
  21.   
  22. # 下面的按键处理将无法接受  
  23. # 创建第三个Button,并将它与'Control-Alt'键绑定  
  24. # bt3 = Button(root,text = 'Control-Alt')  
  25. # bt3.bind('<Control-Alt>',printCoords)  
  26.   
  27.   
  28. # 将焦点设置到第1个Button上  
  29. bt1.focus_set()  
  30. bt1.grid()  
  31. bt2.grid()  
  32.   
  33. root.mainloop()  
  34. # 使用Control/Alt/Shift与其它按键组合,但不能单独的使用Control/Alt组合。  

[python] view plain copy
  1. '''''10.改变组件大小事件'''  
  2. # -*- coding: utf-8 -*-  
  3. # configure:改变组件大小事件  
  4. from tkinter import *  
  5.   
  6. root = Tk()  
  7.   
  8.   
  9. def printSize(event):  
  10.     print((event.width, event.height))  
  11.   
  12.   
  13. root.bind('<Configure>', printSize)  
  14.   
  15. root.mainloop()  
  16. # 当组件的大小改变时触发。evnet.width/height分别返回改变后的宽度和高度。  
转自:http://blog.csdn.net/aa1049372051/article/details/51889900
原创粉丝点击