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

在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 路易威登官网 里边的参数逆向
  • ¥15 Arduino无法同时连接多个hx711模块,如何解决?
  • ¥50 需求一个up主付费课程
  • ¥20 模型在y分布之外的数据上预测能力不好如何解决
  • ¥15 processing提取音乐节奏
  • ¥15 gg加速器加速游戏时,提示不是x86架构
  • ¥15 python按要求编写程序
  • ¥15 Python输入字符串转化为列表排序具体见图,严格按照输入
  • ¥20 XP系统在重新启动后进不去桌面,一直黑屏。
  • ¥15 opencv图像处理,需要四个处理结果图