当前位置:   article > 正文

【tkinter 模块 13】事件处理_

鼠标点击

 

鼠标点击事件
<Button-1> 鼠标左键
<Button-2> 鼠标中键
<Button-3> 鼠标右键
<Double-Button-1> 鼠标左键双击
<Double-Button-2> 鼠标中键双击
<Double-Button-3> 鼠标右键双击

 

  • 代码内容
  1. import tkinter
  2. # 创建主窗口
  3. win = tkinter.Tk()
  4. # 设置标题
  5. win.title('绝对布局')
  6. # 设置大小和位置,前两个x大小 后两个+位置
  7. win.geometry('400x400+500+200')
  8. label1 = tkinter.Label(win, text='请点击我', bg='green', width=400, height=400)
  9. '''
  10. 鼠标点击事件
  11. <Button-1> 鼠标左键
  12. <Button-2> 鼠标中键
  13. <Button-3> 鼠标右键
  14. <Double-Button-1> 鼠标左键双击
  15. <Double-Button-2> 鼠标中键双击
  16. <Double-Button-3> 鼠标右键双击
  17. '''
  18. def func1(event):
  19. print('鼠标左键', event.x, event.y)
  20. def func2(event):
  21. print('鼠标中键', event.x, event.y)
  22. def func3(event):
  23. print('鼠标右键', event.x, event.y)
  24. def func4(event):
  25. print('鼠标左键双击', event.x, event.y)
  26. def func5(event):
  27. print('鼠标中键双击', event.x, event.y)
  28. def func6(event):
  29. print('鼠标右键双击', event.x, event.y)
  30. def func7(event):
  31. print('鼠标左键三击', event.x, event.y)
  32. label1.bind('<Button-1>', func1)
  33. label1.bind('<Button-2>', func2)
  34. label1.bind('<Button-3>', func3)
  35. label1.bind('<Double-Button-1>', func4)
  36. label1.bind('<Double-Button-2>', func5)
  37. label1.bind('<Double-Button-3>', func6)
  38. label1.pack()
  39. # 进入消息循环
  40. win.mainloop()

 

  • 代码示例图

 

  • 代码解析 
  1. 给 Label 标签绑定相应的方法
  2. 需要注意的是鼠标三击会被分解为鼠标单击和鼠标双击,要把双击的方法注释掉

 

鼠标移动

 

当鼠标在控件中按住鼠标左键移动产生
<B1-Motion> 鼠标左键移动
<B2-Motion> 鼠标中键移动
<B3-Motion> 鼠标右键移动

 

  • 代码内容
  1. import tkinter
  2. # 创建主窗口
  3. win = tkinter.Tk()
  4. # 设置标题
  5. win.title('绝对布局')
  6. # 设置大小和位置,前两个x大小 后两个+位置
  7. win.geometry('400x400+500+200')
  8. '''
  9. 当鼠标在控件中按住鼠标左键移动产生
  10. <B1-Motion> 鼠标左键移动
  11. <B2-Motion> 鼠标中键移动
  12. <B3-Motion> 鼠标右键移动
  13. '''
  14. label1 = tkinter.Label(win, text='鼠标移动事件', width=400, height=400)
  15. label1.pack()
  16. def func1(event):
  17. print(event.x, event.y)
  18. label1.bind('<B1-Motion>', func1)
  19. # 进入消息循环
  20. win.mainloop()

 

  • 代码示例图

 

  • 代码解析
  1. 必须鼠标按下时移动才能实现

 

键盘按键

 

  • 代码内容
  1. import tkinter
  2. # 创建主窗口
  3. win = tkinter.Tk()
  4. # 设置标题
  5. win.title('绝对布局')
  6. # 设置大小和位置,前两个x大小 后两个+位置
  7. win.geometry('400x400+500+200')
  8. label1 = tkinter.Label(win, text='按键事件', width=400, height=400)
  9. # 设置焦点
  10. label1.focus_set()
  11. label1.pack()
  12. def func1(event):
  13. print('event.char', event.char)
  14. print('按键值', event.keycode)
  15. label1.bind('<Key>', func1)
  16. # 进入消息循环
  17. win.mainloop()

 

  • 代码示例图

 

  • 代码解析
  1. 按下键盘按键,返回对应按键的ASCⅡ码值

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/124950
推荐阅读
相关标签
  

闽ICP备14008679号