Python GUI tkinter库 自学16

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()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是我来晚了!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值