图形用户界面设计--鼠标键盘事件

鼠标键盘事件

01鼠标事件

在python当中,tkinter模块的事件event都用字符串描述,格式为:

组件对象.bind(event,handler)

其中event为事件,handler为处理事件的函数,鼠标按钮的点击事件格式如下表:
在这里插入图片描述
例:编写捕获鼠标点击事件的程序。当鼠标在窗体容器中点击时,记录下其坐标位置。

from tkinter import *
def callback(event):
        print( "clicked at:", event.x, event.y)
        s = (event.x, event.y)
        txt.set(s)
win = Tk()
win.geometry('200x120')
win.title('鼠标事件')
frame = Frame(win, width=200, height=100, bg = 'cyan')
frame.bind("<Button-1>", callback)#event为点击鼠标左键,callback调用函数处理事件
frame.pack()
txt =  StringVar()
L = Label(win, width=20, textvariable = txt)
L.pack()
win.mainloop()

运行结果:
在这里插入图片描述

02键盘事件

Q.键盘事件与鼠标事件的不同之处以及如何处理?
A.鼠标可以显式地看出点击位置,而键盘无法知道作用于哪个组件。因此在捕获键盘事件时,先要用focus_set()方法把键盘的焦点设置到一个组件上,这样才能捕获到键盘事件。
键盘事件及说明:
在这里插入图片描述
在这里插入图片描述

例:通过捕获键盘事件,在窗体中显示按下的键。

from tkinter import *
win = Tk()
win.title('键盘事件')
def key_action(event):
    print("pressed",repr(event.char))#repr返回一个对象的 string 格式。
    s = event.char
    txt.set(s)
def callback(event):
    L.focus_set()#把键盘焦点设置到文本标签上
txt = StringVar()
L = Label(win,width=20,textvariable=txt,font='song -36 bold',bg='cyan')
L.bind("<KeyPress>",key_action)
L.bind("<Button-1>",callback)
L.pack()
win.mainloop()

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值