分享

Tkinter教程之Event篇(1)

 Mq_Guo 2017-07-23
[python] view plain copy
  1. '''''Tkinter教程之Event篇(1)'''  
  2. # 事件的使用方法  
  3. '''''1.测试鼠标点击(Click)事件'''  
  4. # -*- coding: utf-8 -*-  
  5. # <Button-1>:鼠标左击事件  
  6. # <Button-2>:鼠标中击事件  
  7. # <Button-3>:鼠标右击事件  
  8. # <Double-Button-1>:双击事件  
  9. # <Triple-Button-1>:三击事件  
  10. from tkinter import *  
  11.   
  12. root = Tk()  
  13.   
  14.   
  15. def printCoords(event):  
  16.     print(event.x, event.y)  
  17.   
  18.   
  19. # 创建第一个Button,并将它与左键事件绑定  
  20. bt1 = Button(root, text='leftmost button')  
  21. bt1.bind('<Button-1>', printCoords)  
  22.   
  23. # 创建二个Button,并将它与中键事件绑定  
  24. bt2 = Button(root, text='middle button')  
  25. bt2.bind('<Button-2>', printCoords)  
  26.   
  27. # 创建第三个Button,并将它与右击事件绑定  
  28. bt3 = Button(root, text='rightmost button')  
  29. bt3.bind('<Button-3>', printCoords)  
  30.   
  31. # 创建第四个Button,并将它与双击事件绑定  
  32. bt4 = Button(root, text='double click')  
  33. bt4.bind('<Double-Button-1>', printCoords)  
  34.   
  35. # 创建第五个Button,并将它与三击事件绑定  
  36. bt5 = Button(root, text='triple click')  
  37. bt5.bind('<Triple-Button-1>', printCoords)  
  38.   
  39. bt1.grid()  
  40. bt2.grid()  
  41. bt3.grid()  
  42. bt4.grid()  
  43. bt5.grid()  
  44.   
  45. root.mainloop()  
  46. # 分别测试鼠标的事件,回调函数的参数event中(x,y)表示当前点击的坐标值  

[python] view plain copy
  1. '''''2.测试鼠标的移动(Motion)事件'''  
  2. # -*- coding: utf-8 -*-  
  3. # <Bx-Motion>:鼠标移动事件,x=[1,2,3]分别表示左、中、右鼠标操作。  
  4. from tkinter import *  
  5.   
  6. root = Tk()  
  7.   
  8.   
  9. def printCoords(event):  
  10.     print(event.x, event.y)  
  11.   
  12.   
  13. # 创建第一个Button,并将它与左键移动事件绑定  
  14. bt1 = Button(root, text='leftmost button')  
  15. bt1.bind('<B1-Motion>', printCoords)  
  16.   
  17. # 创建二个Button,并将它与中键移动事件绑定  
  18. bt2 = Button(root, text='middle button')  
  19. bt2.bind('<B2-Motion>', printCoords)  
  20.   
  21. # 创建第三个Button,并将它与右击移动事件绑定  
  22. bt3 = Button(root, text='rightmost button')  
  23. bt3.bind('<B3-Motion>', printCoords)  
  24.   
  25. bt1.grid()  
  26. bt2.grid()  
  27. bt3.grid()  
  28.   
  29. root.mainloop()  
  30. # 分别测试鼠标的移动事件,只有当鼠标被按下后移动才回产生事件  

[python] view plain copy
  1. '''''3.测试鼠标的释放(Relase)事件'''  
  2. # -*- coding: utf-8 -*-  
  3. # <ButtonRelease-x>鼠标释放事件,x=[1,2,3],分别表示鼠标的左、中、右键操作  
  4. from tkinter import *  
  5.   
  6. root = Tk()  
  7.   
  8.   
  9. def printCoords(event):  
  10.     print(event.x, event.y)  
  11.   
  12.   
  13. # 创建第一个Button,并将它与左键释放事件绑定  
  14. bt1 = Button(root, text='leftmost button')  
  15. bt1.bind('<ButtonRelease-1>', printCoords)  
  16.   
  17. # 创建二个Button,并将它与中键释放事件绑定  
  18. bt2 = Button(root, text='middle button')  
  19. bt2.bind('<ButtonRelease-2>', printCoords)  
  20.   
  21. # 创建第三个Button,并将它与右击释放事件绑定  
  22. bt3 = Button(root, text='rightmost button')  
  23. bt3.bind('<ButtonRelease-3>', printCoords)  
  24.   
  25. bt1.grid()  
  26. bt2.grid()  
  27. bt3.grid()  
  28.   
  29. root.mainloop()  
  30. # 分别测试鼠标的Relase事件,只有当鼠标被Relase后移动才回产生Relase事件  

[python] view plain copy
  1. '''''4.进入(Enter)事件'''  
  2. # -*- coding: utf-8 -*-  
  3. # <Enter>:鼠标移入事件  
  4. from tkinter import *  
  5.   
  6. root = Tk()  
  7.   
  8.   
  9. def printCoords(event):  
  10.     print(event.x, event.y)  
  11.   
  12.   
  13. # 创建第一个Button,并将它与Enter事件绑定  
  14. bt1 = Button(root, text='leftmost button')  
  15. bt1.bind('<Enter>', printCoords)  
  16.   
  17. bt1.grid()  
  18.   
  19. root.mainloop()  
  20. # 分别测试Enter事件,只是在第一次进入进回产生事件,在组件中移动不会产生Enter事件  

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多