使用tkinter开发GUI程序6 -- 事件响应

本文介绍了如何使用Tkinter库在GUI应用中绑定用户事件,如键盘按键和鼠标点击,以触发自定义函数。通过示例展示了如何捕获键盘任意键并显示按键字符,以及获取鼠标点击位置并显示坐标。这些示例帮助理解Tkinter中事件处理的基本原理和方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用tkinter可将用户事件与自定义函数绑定,用键盘或鼠标的动作事件来响应触发自定义函数的执行。其通式为:

控件实例.bind(<事件代码>,<函数名>)

其中,事件代码通常以半角小于号“<”和大于号“>”界定,包括事件和按键等2~3个部分,它们之间用减号分隔。常用事件代码如下:

 

例如,将框架控件实例frame绑定鼠标右键单击事件,调用自定义函数myfunc()可表示为"frame.bind('<Button-3>,myfunc')"。注意:myfunc后面没有()。

将控件实例绑定到键盘事件和部分光标位置不落在具体控件实例上的鼠标事件时,还需要设置该实例执行focus_set()方法获得焦点,才能对事件持续响应。例如frame.focus_set()

所调用的自定义函数若需要利用鼠标或键盘的响应值,可将event作为参数,通过event的属性获取。event属性如下:

将标签绑定在键盘任意键触发事件并获取焦点,并将按键字符显示在标签上:

from tkinter import *


def show(event):
    s = event.keysym
    lb.config(text=s)


window = Tk()
window.title('按键学习')
window.geometry('200x200')
lb = Label(window, text='请按键', font=('黑体', 48))
lb.bind('<Key>', show)
lb.focus_set()
lb.pack()
window.mainloop()

 

 将窗体绑定鼠标单击事件,并将鼠标触发点在窗体上的位置显示在标签上:

from tkinter import *


def show(event):
    s = '光标位于x=%s,y=%s' % (str(event.x), str(event.y))
    lb.config(text=s)


window = Tk()
window.title('鼠标学习')
window.geometry('200x200')
lb = Label(window, text='请单击窗体')
lb.pack()
window.bind('<Button-1>', show)
window.focus_set()
window.mainloop()

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

笨小古

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

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

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

打赏作者

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

抵扣说明:

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

余额充值