fanshinee 2019-09-19 20:46 采纳率: 66.7%
浏览 2013

在Python的GUI(tkinter)中,使用for循环添加多给个Entry组件,如何能够对这多个组件在光标离开后(focusout)进行验证?

在Python的GUI(tkinter)中,使用for循环添加多给个Entry组件,如何能够对这多个组件在光标离开后(focusout)进行验证?
代码如下:

from tkinter import *
from tkinter import messagebox

B_number = []
def C():
    def row():
        obtain_number = row_number.get()            
        if obtain_number.isdigit():
            if eval(obtain_number) > 10:
                    messagebox.showinfo("提示","输入行数太多!,最多总计10行")
                    row_number.delete(0,END)
                    row_number.insert(0,"2")
            else:
                def judge_B(event):
                    if B.get().isdigit():
                        print("成功")
                    else:
                        messagebox.showerror("错误","重新输入")
                a = eval(obtain_number)+1
                for i in range(1,a):      
                    B = Entry(add)
                    B.bind("<FocusOut>",judge_B)
                    B_number.append(B)
                    B.grid(row = len(B_number)+1,column = 2)                    
        else:
            messagebox.showerror("错误","字符不合法,已修改为2!")
            row_number_ene.delete(0,END)
            row_number_ene.insert(0,"2")

    add = Tk()
    add.title("行业绿色制造分级判定系数")
    add.geometry("500x500")

    Label(add,text = "行数: ").grid(row = 0,column = 0,padx = 5,pady = 10)
    row_num = StringVar()
    row_num.set("2")
    row_number = Entry(add,textvariable = row_num,bg = "grey",width = 7,
                       justify = CENTER)
    row_number.grid(row =0,column = 1,pady = 10)

    Button(add,text = "增加多行",command = row).grid(row = 0,
                                        column = 2,pady = 10)
C()


存在问题,假设我添加两行,然后对每一行输入1,循环输入(即,第一行输入1-第二行输入1-第一行输入1-第二行输入1,第一行输入a,第二行输入a,第一行输入a,第二行 输入a,每次输入后,点上面行数 (避免多次点击))
输出结果依次为:
报错;(这里应该是成功才对)
成功;
成功;
成功;
成功;(这里应该报错才对)
报错;
报错;
报错
小弟没有C币,还希望大神能帮忙解决下,小弟在此先行感谢

  • 写回答

1条回答 默认 最新

  • 关注
    评论

报告相同问题?

悬赏问题

  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记