Python GUI tkinter库 自学16
程序员文章站
2022-04-27 19:44:41
...
事件机制和消息循环原理
1、鼠标和键盘事件
代码 | 说明 |
---|---|
<Button-1> <ButtonPress-1> <1> |
鼠标左键按下,2 表示中间的滚轮,3 表示右键 |
<ButtonRelease-1> |
鼠标左键释放 |
<B1-Motion> |
按住鼠标左键移动 |
<Double-Button-1> |
双击左键 |
<Enter> |
鼠标指针进入某一组件区域 |
<Leave> |
鼠标指针离开某一组件区域 |
<MouseWheel> |
滚动滚轮 |
<KeyPress-a> |
按下 a 键,a 可用其它键代替 |
<KeyRelease-a> |
释放 a 键 |
<KeyPress-A> |
按下 A 键(大写的A) |
<Alt-KeyPress-a> |
同时按下 alt 和 a,alt 可用 ctrl 和 shift 代替 |
<Double-KeyPress-a> |
快速按两下 a |
<Control-v> |
ctrl 和 v 键同时按下,v 键可换成其它键 |
2、event 对象常用属性
名称 | 说明 |
---|---|
char |
按键字符,仅对键盘事件有效 |
keycode |
按键编码,仅对键盘事件有效 |
keysym |
按键名称,仅对键盘事件有效 |
num |
鼠标按键,仅对鼠标事件有效 |
type |
所触发的事件类型 |
widget |
引发事件的组件 |
width, height |
组件改变后的大小,仅 Configure 有效 |
x, y |
鼠标当前位置,相对于父容器 |
x_root, y_root |
鼠标当前位置,相对于整个屏幕 |
3、源代码
from tkinter import *
window = Tk()
window.geometry("500x200")
w1 = Canvas(window, width=200, height=200, bg="red")
w1.pack()
def MouseTest(event):
print("鼠标左键点击位置(相对于父容器):{0},{1}".format(event.x, event.y))
print("鼠标左键点击位置(相对于屏幕):{0},{1}".format(event.x_root, event.y_root))
print("事件绑定的组件:{0}".format(event.widget))
def TestDrag(event):
w1.create_oval(event.x, event.y, event.x+1, event.y+1)
def KeyboardTest(event):
print("键的keycode:{0}, 键的char:{1}, 键的keysym:{2}"
.format(event.keycode, event.char, event.keysym))
def press_a_test(event):
print("press a")
def release_a_test(event):
print("release a")
w1.bind("<Button-1>", MouseTest)
# 将鼠标事件绑定到 MouseTest 方法
w1.bind("<B1-Motion>", TestDrag)
window.bind("<KeyPress>", KeyboardTest)
window.bind(("<KeyPress-a>", press_a_test))
window.bind("<KeyRelease-a>", release_a_test)
window.mainloop()
上一篇: Android加载配置文件的几种方法
下一篇: 监听事件和删除监听事件
推荐阅读
-
NO.5:自学python之路------标准库,正则表达式
-
Python使用tkinter库实现文本显示用户输入功能示例
-
python自学 (四)第四章 操作数据库 【数据编程接口、使用SQLite】
-
python库的tkinter带你进入GUI世界(计算器简单功能)
-
python基于Tkinter库实现简单文本编辑器实例
-
Python Tkinter GUI编程入门介绍
-
使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二)
-
python3.6 +tkinter GUI编程 实现界面化的文本处理工具(推荐)
-
python 8种必备的gui库
-
Python Tkinter 之Canvas控件(Python GUI 系列11)