密钥绑定在tkin中没有响应

2024-04-19 05:05:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在两个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)

有什么问题吗?你知道吗


Tags: lambda函数代码nametruereturnbindvalidate
1条回答
网友
1楼 · 发布于 2024-04-19 05:05:57

在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))

相关问题 更多 >