NameError: name 'ChildFirstBox4' is not defined error for all except one

35 Views Asked by At

I'm trying to run an If statement and my scroll widget only works for anything other 1,2,3,4,5. This number is typed in by user in gui which then determines which strings is used for variable TextForReview. I get the error "NameError: name 'ChildFirstBox4' is not defined" but they're all global variables. I'm using the scroll widget to clean up gui, so before trying widget, .place would work for all variables. Is there something i'm not calling correctly or the order of the functions is correct?

    def Scroll():
        global ChildScroll
        global text_area
        ForScrollText()
        # Title Label
        ChildScroll = Label(AppWindow, text="ScrolledText Widget Example",
                            font=("Times New Roman", 15),background='green',
                            foreground="white")
        ChildScroll.place(relx=0.5, rely=0.03)

       # Creating scrolled text area
        # widget with Read only by
        # disabling the state
        text_area = st.ScrolledText(AppWindow, width=15,height=8,
                            font=("Ariel",10))

        text_area.place(relx=0.5, rely=0.1, relheight=.4, relwidth=.3)
        # Inserting Text which is read only
        # IF statement + Batman functions
        text_area.insert(tk.INSERT, TextForReview)

        # Making the text read only
        text_area.configure(state='disabled')

    #All the different texts for info page for children
    def BatmanCommand():
        Batman1()
        Batman2()
        Batman3()
        Batman4()
        Batman5()
        Batman6()

    # Infomation for child 1
    def Batman1():
        global a
        a = ChildFirstBox1.get() + ", " + DOBBox1.get() + ", " + GenBox1.get() + ", " + AgeBox1.get()\
            + "\nShirt Size: " + ShirtBox1.get()\
            + "\nPants Size: " + PantsBox1.get()\
            + "\nShoes Size: " + ShoeBox1.get() \
            + "\nWish 1: " + WishBox1.get()\
            + "\nWish 2: " + WishBox2.get()\
            + "\nNeed: " + WishBox3.get()


    # Infomation for child 2
    def Batman2():
        global b
        b = ChildFirstBox2.get() + ", " + DOBBox2.get() + ", " + GenBox2.get() + ", " + AgeBox2.get()\
            + "\nShirt Size: " + ShirtBox2.get()\
            + "\nPants Size: " + PantsBox2.get()\
            + "\nShoes Size: " + ShoeBox2.get() \
            + "\nWish 1: " + WishBox1_2.get()   \
            + "\nWish 2: " + WishBox2_2.get()  \
            + "\nNeed: " + WishBox3_2.get()    \

    # Infomation for child 3
    def Batman3():
        global c
        c = ChildFirstBox3.get() + ", " + DOBBox3.get() + ", " + GenBox3.get() + ", " + AgeBox3.get()\
            + "\nShirt Size: " + ShirtBox3.get()\
            + "\nPants Size: " + PantsBox3.get()\
            + "\nShoes Size: " + ShoeBox3.get() \
            + "\nWish 1: " + WishBox1_3.get()   \
            + "\nWish 2: " + WishBox2_3.get()  \
            + "\nNeed: " + WishBox3_3.get()    \

    # Infomation for child 4
    def Batman4():
        global d
        d = ChildFirstBox4.get() + ", " + DOBBox4.get() + ", " + GenBox4.get() + ", " + AgeBox4.get()\
            + "\nShirt Size: " + ShirtBox4.get()\
            + "\nPants Size: " + PantsBox4.get()\
            + "\nShoes Size: " + ShoeBox4.get() \
            + "\nWish 1: " + WishBox1_4.get()   \
            + "\nWish 2: " + WishBox2_4.get()  \
            + "\nNeed: " + WishBox3_4.get()  \

    # Infomation for child 5
    def Batman5():
        global e
        e = ChildFirstBox5.get() + ", " + DOBBox5.get() + ", " + GenBox5.get() + ", " + AgeBox5.get()\
            + "\nShirt Size: " + ShirtBox5.get()\
            + "\nPants Size: " + PantsBox5.get()\
            + "\nShoes Size: " + ShoeBox5.get() \
            + "\nWish 1: " + WishBox1_5.get()   \
            + "\nWish 2: " + WishBox2_5.get()  \
            + "\nNeed: " + WishBox3_5.get()    \

    # Infomation for child 6
    def Batman6():
        global f
        f = ChildFirstBox6.get() + ", " + DOBBox6.get() + ", " + GenBox6.get() + ", " + AgeBox6.get()\
            + "\nShirt Size: " + ShirtBox6.get()\
            + "\nPants Size: " + PantsBox6.get()\
            + "\nShoes Size: " + ShoeBox6.get() \
            + "\nWish 1: " + WishBox1_6.get()   \
            + "\nWish 2: " + WishBox2_6.get()  \
            + "\nNeed: " + WishBox3_6.get()    \

    def ForScrollText():
        BatmanCommand()
        global TextForReview
        TextForReview = ""
        if NumKids.get() == "1":
            TextForReview = "  " + a

        elif NumKids.get() == "2":
            TextForReview = "  " + a + "\n\n" + b

        elif NumKids.get() == "3":
            TextForReview = "  " + a + "\n\n" + b + "\n\n" + c

        elif NumKids.get() == "4":
            TextForReview = "  " + a + "\n\n" + b + "\n\n" + c\
                            + "\n\n" + d

        elif NumKids.get() == "5":
            TextForReview = "  " + a + "\n\n" + b + "\n\n" + c\
                            + "\n\n" + d + "\n\n" + e

        else:
            TextForReview = "  " + a + "\n\n" + b + "\n\n" + c\
                            + "\n\n" + d + "\n\n" + e + "\n\n" + f

here is where ChildFirstBox 4 is defined. The rest of the .get() in code above is defined the similiarly as code below.

    def Child4():
       global ChildFirstLabel4
       global ChildFirstBox4
       global ChildLastLabel4
       global ChildLastBox4
       global AgeLabel4
       global AgeBox4
       global ShirtsLabel4
       global ShirtBox4
       global PantsLabel4
       global PantsBox4
       global ShoeLabel4
       global ShoeBox4
       global GenLabel4
       global GenBox4
       global DOBLabel4
       global DOBBox4
       ChildFirstLabel4 = Label(AppWindow, text="f name")
       ChildFirstLabel4.place(relx=0.6, rely=0.32)
       ChildFirstBox4 = Entry(AppWindow, width=10)
       ChildFirstBox4.insert(0, "")
       ChildFirstBox4.place(relx=0.6, rely=0.36)
       ChildLastLabel4 = Label(AppWindow, text="l name")
       ChildLastLabel4.place(relx=0.68, rely=0.32)
       ChildLastBox4 = Entry(AppWindow, width=10)
       ChildLastBox4.insert(0, "")
       ChildLastBox4.place(relx=0.68, rely=0.36)
       AgeLabel4 = Label(AppWindow, text="Enter Child's Age")
       AgeLabel4.place(relx=0.6, rely=0.4)
       AgeBox4 = Entry(AppWindow, width=5)
       AgeBox4.insert(0, "")
       AgeBox4.place(relx=0.6, rely=0.44)
       ShirtsLabel4 = Label(AppWindow, text="Shirt size")
       ShirtsLabel4.place(relx=0.74, rely=0.32)
       ShirtBox4 = Entry(AppWindow, width=10)
       ShirtBox4.insert(0, "")
       ShirtBox4.place(relx=0.74, rely=0.36)
       PantsLabel4 = Label(AppWindow, text="Pant size")
       PantsLabel4.place(relx=0.74, rely=0.4)
       PantsBox4 = Entry(AppWindow, width=10)
       PantsBox4.insert(0, "")
       PantsBox4.place(relx=0.74, rely=0.44)
       ShoeLabel4 = Label(AppWindow, text="Shoe Size")
       ShoeLabel4.place(relx=0.80, rely=0.32)
       ShoeBox4 = Entry(AppWindow, width=5)
       ShoeBox4.insert(0, "")
       ShoeBox4.place(relx=0.80, rely=0.36)
       GenLabel4 = Label(AppWindow, text="Gender")
       GenLabel4.place(relx=0.8, rely=.4)
       GenBox4 = Entry(AppWindow, width=10)
       GenBox4.insert(0, "")
       GenBox4.place(relx=0.8, rely=0.44)
       DOBLabel4 = Label(AppWindow, text="DOB")
       DOBLabel4.place(relx=0.86, rely=0.32)
       DOBBox4 = Entry(AppWindow, width=15)
       DOBBox4.insert(0, "")
       DOBBox4.place(relx=0.86, rely=0.36)
0

There are 0 best solutions below