Haha!, Brilliant, worked perfectly! Thank you for the help!
John McMonagle-3 wrote:
>
> Alexnb wrote:
>> I have an app that has a base frame, and some other frames inside of that
>> base frame. My question is if there is some way to clear out the base
>> frame.
>> Meaning leaving an empty baseframe. See I have a function that pulls up
>> frames inside that base frame. The problem comes when I hit a button(this
>> button is the button that first shows the frames inside the base frame,
>> basically you click it and the internal frames show up.) and then I hit
>> it
>> again, I get some weird stuff. Okay, this is getting really complicated.
>> I
>> really just want to know if I can clear out a frame, and still be able to
>> fill it back up again. If you want ot uunderstand further I'll post the
>> code
>> at the bottom and just run it, then hit the "Word List" button, then hit
>> it
>> again, you'll see what I am talking about.
>>
> Make a list of the widgets when they are created and destroy the widgets
> in this list whenever you have to re-define them.
>
> Regards,
>
> John
>
>
> Your code with mods:
>
> from Tkinter import *
>
> class App:
> def __init__(self, parent):
> self.parent = parent
> self.parent.geometry("500x250")
>
> self.list_of_widgets = []
>
> #----------------------------Contstants for Buttons------------
>
> button_padx = "2m"
> button_pady = "1m"
>
> #--------------------------end constants-----------------------
>
> self.baseContainer = Frame(self.parent)
> self.baseContainer.pack(side=TOP, fill = BOTH, expand=NO)
>
> #the Top Frame with all the buttons
> self.topContainer = Frame(self.baseContainer)
> self.topContainer.pack(side=TOP, expand=YES, ipadx=5,
> ipady=5, fill = X, anchor=N)
>
>
>
> #the frame with the main things the user will use
> self.mainContainer = Frame(self.baseContainer)
> self.mainContainer.pack(side=TOP,
> ipadx = 5,
> ipady = 5,
> anchor=CENTER,
> expand=YES,
> fill=BOTH)
>
> #---------------------Top Buttons-----------------------------
>
> self.defineButton = Button(self.topContainer, padx=button_padx,
> pady=button_pady)
> self.defineButton.configure(text="Word List",
> command=self.define_Frame)
> self.defineButton.pack(side=LEFT)
>
> #--------------------------------------------------------------
> def define_Frame(self):
> # destroy all the child widgets of the Frame
> for widget in self.list_of_widgets:
> widget.destroy()
> self.list_of_widgets = []
>
> myMessage="Please type in all the words that you would like to
> define"
> xxx = Label(self.mainContainer, text=myMessage,
> justify=LEFT)
> xxx.pack(side=TOP, anchor=N)
> self.list_of_widgets.append(xxx)
>
> #The LEFT Frame that comes up when you hit define
> self.defineContainer1 = Frame(self.mainContainer)
> self.defineContainer1.pack(side=LEFT, ipadx = 5,
> ipady = 5, expand=YES, fill=BOTH)
> self.list_of_widgets.append(self.defineContainer1)
>
> #The RIGHT Frame that comes up when you hit define
> self.defineContainer2 = Frame(self.mainContainer)
> self.defineContainer2.pack(side=LEFT, ipadx=5,
> ipady=5, expand=YES, fill=BOTH)
> self.list_of_widgets.append(self.defineContainer2)
>
> #This frame is where the define button goes
> self.defineButtonF = Frame(self.baseContainer)
> self.defineButtonF.pack(side=TOP,
> anchor=S,
> ipady=5,
> ipadx=5,
> fill=BOTH,
> expand=NO)
> self.list_of_widgets.append(self.defineButtonF)
>
> #----------------------------Contstants for Buttons------------
>
> self.button_padx = "2m"
> self.button_pady = "1m"
>
> #--------------------------end constants-----------------------
>
>
>
>
> #----------------------STUFF FOR DEFINE
> FRAME-------------------------
>
> self.e1 = Entry(self.defineContainer1)
> self.e1.pack(fill=X)
>
> self.e2 = Entry(self.defineContainer1)
> self.e2.pack(fill=X)
>
> self.e3 = Entry(self.defineContainer1)
> self.e3.pack(fill=X)
>
> self.e4 = Entry(self.defineContainer1)
> self.e4.pack(fill=X)
>
> self.e5 = Entry(self.defineContainer1)
> self.e5.pack(fill=X)
>
> self.e6 = Entry(self.defineContainer1)
> self.e6.pack(fill=X)
>
> self.e7 = Entry(self.defineContainer1)
> self.e7.pack(fill=X)
>
> self.e8 = Entry(self.defineContainer2)
> self.e8.pack(fill=X)
>
> self.e9 = Entry(self.defineContainer2)
> self.e9.pack(fill=X)
>
> self.e10 = Entry(self.defineContainer2)
> self.e10.pack(fill=X)
>
> self.e11 = Entry(self.defineContainer2)
> self.e11.pack(fill=X)
>
> self.e12 = Entry(self.defineContainer2)
> self.e12.pack(fill=X)
>
> self.e13 = Entry(self.defineContainer2)
> self.e13.pack(fill=X)
>
> self.e14 = Entry(self.defineContainer2,)
> self.e14.pack(fill=X)
>
> #-------------------------Define Button Stuff-------------------------
>
> #Define it button
> self.defineIt= Button(self.defineButtonF,
> command=self.DefineClick)
> self.defineIt.configure(text="Define!")
> self.defineIt.bind("<Return>", self.DefineClickE)
> self.defineIt.pack(side=TOP,
> anchor=N,
> padx=self.button_padx,
> pady=self.button_pady,)
> def DefineClickE(self, event):
> print "Define was hit with Enter"
> self.DefineClick()
> def DefineClick(self):
> print "Define was activated."
>
> #----------------------------end define Button Stuff----------------------
>
>
>
> root = Tk()
> app = App(root)
> root.mainloop()
> _______________________________________________
> Tkinter-discuss mailing list
> [email protected]
> http://mail.python.org/mailman/listinfo/tkinter-discuss
>
>
--
View this message in context:
http://www.nabble.com/Clearing-out-a-Frame-tp18230530p18230910.html
Sent from the Python - tkinter-discuss mailing list archive at Nabble.com.
_______________________________________________
Tkinter-discuss mailing list
[email protected]
http://mail.python.org/mailman/listinfo/tkinter-discuss