Tkinter 5 Event Binding

本文介绍了如何在Tkinter中使用bind()函数实现事件绑定,包括指定事件、处理函数及添加额外处理。还探讨了事件模式,如modifier、eventtype和detail,以及如何对主窗口和特定组件类型进行绑定,以及取消绑定的方法。

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

使用command方法,一方面并非所有的组件都支持command binding,另一方面command支持的键鼠事件有限。tkinter提供了另一个方式,通过bind()函数,将具体事件与组件绑定在一起。从而,当事件触发时,将自动调用绑定的函数。语法如下:

1、实现方式

widget.bind(event, handler, add=None)
1、event即为指定的事件
2、handler为调用的函数
3、add为组件额外增加的handler,即对widget组件而言,在event发生时,额外地增加了handler这个事件处理函数。
import tkinter as tk
from tkinter import ttk


def return_pressed(event):
    print('Return key pressed.')


root = tk.Tk()

btn = ttk.Button(root, text='Save')
btn.bind('<Return>', return_pressed)


btn.focus()
btn.pack(expand=True)

root.mainloop()

启用add的案例。实现了一个事件,可以触发多个handler。

import tkinter as tk
from tkinter import ttk


def return_pressed(event):
    print('Return key pressed.')


def log(event):
    print(event)


root = tk.Tk()

btn = ttk.Button(root, text='Save')
btn.bind('<Return>', return_pressed)
btn.bind('<Return>', log, add='+')


btn.focus()
btn.pack(expand=True)

root.mainloop()

事件模式

tkinter使用事件模式将事件名字映射到具体的事件处理函数,如表明是Retrun键盘。事件模式的格式如下:

<<modifier-type-detail>>

如上,一个事件的被包含在<>符号里,里面有三部分。0个或者多个modifier, 再一个event-type,以及detail信息。比如,,这里没有modifier, 表明是键盘事件里按下了A键盘;<Alt-Control-KeyPress-KP_Delete>,modifier对应的是Alt-Control,type对应的是KeyPress, detail对应的是KP_Delete,整个表明的是 alt+control+delete。

常见Event modifiers:

在这里插入图片描述
第四个modifier,与其他type一起用时,如就表明了任意按键事件。

常见Event types:

在这里插入图片描述

常见Event Detail

在这里插入图片描述

Tkinter允许对主程序窗口的binding

root.bind('<Return>', handler)

对组件类型的binding.

前面讲述的是对某个widget,Tkinter还可以对类型widget进行binding.

root.bind_class('Entry', '<Control-V>', paste)

取消binding

widget.unbind(event)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值