当前位置:   article > 正文

事件和信号之bind_bind sv

bind sv
  1. #事件类型(事件源),事件对象(操作过程中可获取的信息),事件函数
  2. 事件类型(事件源):
  3. 代表 Tkinter 事件的字符串大致遵循如下格式:
  4. <modifier-type-detail>
  5. type 是事件字符串的关键部分,用于描述事件的种类,比如鼠标事件、键盘事件等;
  6. modifer 则代表事件的修饰部分,比如单击、双击等;
  7. detail 用于指定事件的详情,比如指定鼠标左键、右键、滚轮等。
  8. tkinter 支持的各种鼠标、键盘事件:
  9. 事件 简介
  10. <Button-detail> 鼠标按键的单击事件,detail 指定哪一个鼠标键被单击。比如单击鼠标左键为 <Button-1>
  11. 单击鼠标中键为 <Button-2>,单击鼠标右键为 <Button-3>,单击向上滚动的滚轮为 <Button-4>
  12. 单击向下滚动的滚轮为 <Button-5>
  1. <ButtonRelease-detail> 鼠标按键的释放事件,detail 指定哪一个鼠标键被释放。比如鼠标左键被释放为 <ButtonRelease-1>
  2. 鼠标中键被释放为 <ButtonRelease-2>,鼠标右键被释放为 <ButtonRelease-3>
  1. <Double-Button-detail><Double-detail> 用户双击某个鼠标键的事件,detail 指定哪一个鼠标键被双击。
  2. 比如双击鼠标左键为 <Double-1>,双击鼠标中键为 <Double-2>,双击鼠标右键为 <Double-3>
  3. 双击向上滚动的滚轮为 <Double-4>,双击向下滚动的滚轮为 <Double-5>
  1. <modifier Motion> 鼠标在组件上的移动事件,modifier 指定要求按住哪个鼠标键。比如按住鼠标左键移动为 <B1-Motion>
  2. 锁住鼠杯鼠标中键移动为 <B2-Motion>,按住鼠标右键移动为 <B3-Motion>,单独<motion>是鼠标移动
  3. <Enter> 鼠标进入组件的事件。注意,<Enter> 事件不是按下回车键事件,按下回车键的事件是 <Return>
  4. <Leave> 鼠标移出组件事件
  5. <Focusln> 组件及其包含的子组件获得焦点
  6. <FocusOut> 组件及其包含的子组件失去焦点
  7. <Return> 按下回车键的事件。实际上可以为所有按键绑定事件处理方法。特殊键位名称包括 Cancel、BackSpace、Tab、Return回车
  8. Shift_L(左Shift,如果只写 Shift 则代表任意 Shift)、Control_L(左 Ctrl,如果只写 Control 则代表任意 Ctrl)、
  9. Alt_L(左 Alt,如果只写 Alt 则代表任意 Alt)、
  10.   Pause、Caps_Lock、Escape、Prior(Page Up)、Next(Page Down)、End、Home、Left、Up、Right、Down、
  11. Print、Insert、Delete、F1、F2、F3、F4、F5、F6、F7、F8、F9、F10、F11、F12、Num_Lock 和 Scroll_Lock
  12. <Key> 键盘上任意键的单击事件,程序可通过 event 获取用户单击了哪个键
  13. a 键盘上指定键被单击的事件。比如‘a’代表 a 键被单击,‘b’代表 b 键被单击(不要尖括号)
  14. <Shift-Up> 在 Shift 键被按下时按 Up 键。类似的还有 <Shift-Left><Shift-Down><Alt-Up><Control-Up>
  15. <Configure> 组件大小、位置改变的事件。组件改变之后的大小、位置可通过 event 的 width、height、x、y 获取
  16. 事件对象:
  17. x,y 当前触发事件时鼠标相对触发事件的组件的坐标值
  18. x_root,y_root 当前触发事件时鼠标相对于屏幕的坐标值
  19. char 获取当前键盘事件时按下的键对应的字符
  20. keycode 获取当前键盘事件时按下的键对应的ASCII码
  21. type 获取事件的类型
  22. num 获取鼠标按键类型 123 左中右
  23. widget 触发事件的组件
  24. width/height 组件改变之后的大小和configure()相关
  1. from tkinter import *
  2. root = Tk()
  3. root.title('bind')
  4. root.resizable(0,0)
  5. show = Text(root, height=20, width=30)
  6. show.pack(side=LEFT, fill=BOTH, expand=YES)
  7. bn = Button(root, text='单击/双击',width=10)
  8. bn.pack(side=LEFT,ipadx=3,ipady=3,padx=3,pady=3)
  9. def one(event):
  10. # bind传入的event参数必须有
  11. # event参数代表传给函数的事件对象,通过 event.widget 获取事件源。
  12. print(event) # bind传入对象type,鼠标按键num,xy值
  13. print(event.widget) # 触发事件的控件是button
  14. print(event.type) # 触发事件类型button press,与text显示的event.type不一样
  15. show.tag_configure('content',font=('楷体', 11, 'bold'),foreground='blue',spacing3=15)
  16. outputs = [event,event.x,event.y,event.x_root,event.y_root,event.type,event.num,event.widget]
  17. for output in outputs:
  18. show.insert(END,output,'content')
  19. show.insert(END,'\n')
  20. def double(event):
  21. print("左键双击, 退出程序")
  22. import sys;
  23. sys.exit()
  24. # 为左键单击事件绑定处理方法
  25. bn.bind('<Button-1>', one)
  26. # 为左键双击事件绑定处理方法
  27. bn.bind('<Double-1>', double)
  28. root.mainloop()

 

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

闽ICP备14008679号