按键绑定在 tkinter 中没有响应
Key binding not responding in tkinter
我正在尝试在两个 Entry
上绑定 <Return>
键事件,但验证码不起作用(没有显示错误,validate
函数只是不起作用'不适用)
这是入口初始化:
from tkinter import *
fi = Tk()
l_n = Entry(fi)
l_t = Entry(fi)
b1 = Button(fi, cursor="hand2", overrelief=GROOVE, text="Run", command=someUnrelatedFunction, state=DISABLED)
下面是支持将验证函数绑定到条目的代码:
l_n.bind("<Return>",lambda name='l_n':validate(name))
l_t.bind("<Return>",lambda name='l_t':validate(name))
最后,这是打包和验证函数:
l_n.pack()
l_t.pack()
def validate(name):
global v1,v2,n,t
if name=='l_n':
v1=True
s=l_n.get()
n=int(s)
l_n.delete(0,END)
elif name=='l_t':
v2=True
s=l_t.get()
t=float(s)
l_t.delete(0,END)
if v1==True and v2==True:
b1.config(state=NORMAL)
这里有什么问题?
在 tkinter 中,当您进行绑定时,tkinter 本身会向保存事件信息的回调添加另一个参数。因此,当您尝试使用 lambda 传递参数时,您也应该考虑到这一点。
l_n.bind("<Return>", lambda event, name='l_n': validate(name))
l_t.bind("<Return>", lambda event, name='l_t': validate(name))
我正在尝试在两个 Entry
上绑定 <Return>
键事件,但验证码不起作用(没有显示错误,validate
函数只是不起作用'不适用)
这是入口初始化:
from tkinter import *
fi = Tk()
l_n = Entry(fi)
l_t = Entry(fi)
b1 = Button(fi, cursor="hand2", overrelief=GROOVE, text="Run", command=someUnrelatedFunction, state=DISABLED)
下面是支持将验证函数绑定到条目的代码:
l_n.bind("<Return>",lambda name='l_n':validate(name))
l_t.bind("<Return>",lambda name='l_t':validate(name))
最后,这是打包和验证函数:
l_n.pack()
l_t.pack()
def validate(name):
global v1,v2,n,t
if name=='l_n':
v1=True
s=l_n.get()
n=int(s)
l_n.delete(0,END)
elif name=='l_t':
v2=True
s=l_t.get()
t=float(s)
l_t.delete(0,END)
if v1==True and v2==True:
b1.config(state=NORMAL)
这里有什么问题?
在 tkinter 中,当您进行绑定时,tkinter 本身会向保存事件信息的回调添加另一个参数。因此,当您尝试使用 lambda 传递参数时,您也应该考虑到这一点。
l_n.bind("<Return>", lambda event, name='l_n': validate(name))
l_t.bind("<Return>", lambda event, name='l_t': validate(name))