赞
踩
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()
这里的意思是,创建一块地方,鼠标右键点击后调用callback函数(传入event),然后打印出位置
用户释放鼠标产生的事件,跟Button差不多,比Button好用,因为可以避免不小心触发的事件
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()
将打入的字符输入,然后输出,需要注意的是,这里需要有焦点位置(也就是说明你是在屏幕的哪个地方输入的),所以调用了focus_set函数
试了一下,发现中文也可以
<KeyPress-H>:表示用户点击H按键
<Control-Shift-KeyPress-H>:用户同时按下Ctrl + Shift + H
表示鼠标移到某个位置所触 发的事件
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()
事件常用语法:
<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 | 表示任何类型的按键被按下的时候 |
Control | Ctrl |
Double | 表示后续两个事件被连续触发(如:<Double-Button-1>标用户双击鼠标左键) |
Lock | 打开大写字母锁定键(CapsLock) |
Shift | 你懂的 |
Triple | 跟Double类似,三连击 |
当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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。