tkinter绑定事件

目录

bind函数

event传参

bind函数

绑定事件一般用bind函数

这个是绑定的root根窗口

root.bind('<事件名>', 回调函数名)

 以下是鼠标键盘事件

<Button-1>            鼠标左键按下,2表示中键,3表示右键;

<ButtonRelease-1>    鼠标左键释放;

<B1-Motion>           按住鼠标左键移动;

<Double-Button-1>     双击左键;

<Enter>               鼠标指针进入某一组件区域;

<Leave>               鼠标指针离开某一组件区域;

<MouseWheel>         滚动滚轮;

<KeyPress-A>         按下A键,A可用其他键替代;

<Alt-KeyPress-A>      同时按下alt和A;alt可用ctrl和shift替代;

<Double-KeyPress-A>    快速按两下A;

<Lock-KeyPress-A>     大写状态下按A;

<Key>                                指键盘的任意按键,

 以下是代码示例:

from tkinter import *

root = Tk()
root.geometry('500x300+100+100')
root.resizable(False, False)
root.title('我要点赞')

"定义函数"
def show(event):
    v.set('检测到按键')


v = StringVar()
Label(root, textvariable=v).pack()

"绑定事件"
root.bind('<Key>', show)


mainloop()

这是刚运行时的窗口: 

当我们按下键盘上的任意键时:

event传参

先看错误代码:

from tkinter import *
root = Tk()


def callback(event, x='', y=''):
    number = event.num
    print(x + y)
    print(number)
f = Frame(root, bg='light blue')
f.pack(expand=YES, fill=BOTH)

label = Label(f, text='点击', bg='light blue')
label.pack(pady=50, anchor=CENTER)

label.bind('<Button-1>', lambda: callback(event, '标签', '事件'))
f.bind('<Button>', callback)

mainloop()

这样运行后会报错:

TypeError: <lambda>() takes 0 positional arguments but 1 was given

我们只需修改一下:

label.bind('<Button-1>', lambda event: callback(event, '标签', '事件'))

在lambda后加上event即可报错

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值