当前位置:   article > 正文

python | tkinter(六) bind事件信息_tkinter bind

tkinter bind

一、事件

1、<Button>用户点击鼠标产生的事件

frame.bind(’<Button-1>’,fun)表示按鼠标左键产生的事件,其中
<Button-1>表示鼠标左键,
<Button-2>表示鼠标中键,
<Button-3>表示鼠标右键,
<Button-4>表示滚轮上滑(Linux),
<Button-5>表示滚轮下滑(Linux),
而fun表示点击后发生的事件

	from tkinter import *
root = Tk()
def callback(event):
    print(event.x,event.y)
frame = Frame(root,width=200,height=200)
frame.bind('<Button-3>',callback)
frame.pack()
mainloop()
		
   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

这里的意思是,创建一块地方,鼠标右键点击后调用callback函数(传入event),然后打印出位置
在这里插入图片描述

2、<ButtonRelease>

用户释放鼠标产生的事件,跟Button差不多,比Button好用,因为可以避免不小心触发的事件

二、关于键盘的事件

1、例子

from tkinter import *
root = Tk()
def callback(event):
    print(event.char)
frame = Frame(root,width=200,height=200)
frame.bind('<Key>',callback)
frame.focus_set()
frame.pack()
mainloop()

   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

将打入的字符输入,然后输出,需要注意的是,这里需要有焦点位置(也就是说明你是在屏幕的哪个地方输入的),所以调用了focus_set函数
在这里插入图片描述
试了一下,发现中文也可以

2、其他

<KeyPress-H>:表示用户点击H按键
<Control-Shift-KeyPress-H>:用户同时按下Ctrl + Shift + H

三、<Motion>

表示鼠标移到某个位置所触 发的事件

from tkinter import *
root = Tk()
def callback(event):
    print('当前位置:',event.x,event.y)
frame = Frame(root,width=200,height=200)
frame.bind('<Motion>',callback)
frame.focus_set()
frame.pack()
mainloop()

   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

在这里插入图片描述

四、其他类型(参考小甲鱼视频)

1、<modifier-type-detail>

事件常用语法:
<modifier-type-detail>

type含义
Configure组件尺寸发生变化触发
Deactivate组件状态从激活变为未激活
Destroy组件被摧毁触发
Enter当鼠标指针进入指针时候触发(不是按下回车。。。)
Expose当窗口或组件的某部分不再被覆盖的时候触发
FocusIn当组件获得焦点时触发(可以用focus_set使组件获得焦点)
FousOut当组件失去焦点触发
KeyPress键盘,可以简写为Key
KeyRelease释放键盘后的事件
Leave鼠标指针离开后触发
Map当组件被映射时候触发,意思是在应用程序中显示该组件的时候,如grid()方法
Motion鼠标在组件内移动触发事件
MouseWheel当鼠标滚轮滚动时触发(支持WIN和mac系统,Linux参考Button)
Unmap当组件被取消映射时候触发,如grid_remove()方法时
Visibility当应用程序至少有一部分在屏幕中是可见的时候触发该事件

modifier

modifier含义
Alt按下Alt时候
Any表示任何类型的按键被按下的时候
ControlCtrl
Double表示后续两个事件被连续触发(如:<Double-Button-1>标用户双击鼠标左键)
Lock打开大写字母锁定键(CapsLock)
Shift你懂的
Triple跟Double类似,三连击

2、event

当Tkinter去回调你定义的函数,都会带Event对象(作为参数)去调用,Event的属性如下:

属性含义
widget产生该事件的组件
x,y当前鼠标位置坐标(相对于窗口左上角,像素为单位)
x_root,y_root同上
char按键对应字符(键盘事件专属)
keysym按键名
keycode按键码
num按钮数字(鼠标事件专属)
width,height组件的新尺寸(Configure事件专属)
type该事件的类型

转载自:https://blog.csdn.net/weixin_42953201/article/details/103063810

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

闽ICP备14008679号