On Thu, Jul 3, 2008 at 2:33 AM, Alexnb <[EMAIL PROTECTED]> wrote: > > I am in the middle of writing my first big app. I am having trouble with the > layout of the frames and buttons. In particular, just one frame. I'll post > the code and you can compile it and see what I am talking about. But, when > you do there is a red frame with the button "Define" in it. I want this > frame to be below the yellow and green frame. It has to be a child frame of > a certain parent frame. I can make it work if it is not in that certain > parent frame, but can't seem to when it is. Here's the code, and Ill give > some additional info at the bottom.
I'm sure you can manage to post a much smaller code that shows your problem. This may also help you understanding the problem, and your chances of getting help will increase at the same time. > > from Tkinter import* > #Now for the class that gets the definitions > from get_defs import* > > class App: > def __init__(self, parent): > self.parent = parent > self.parent.geometry("500x250") > > #----------------------------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, bg="purple") > 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, bg="blue") > self.mainContainer.pack(side=TOP, > ipadx = 5, > ipady = 5, > anchor=CENTER, > expand=YES, > fill=BOTH) > > #---------------------Top Buttons----------------------------- > #WORD LIST BUTTON------------------ > self.wordListButton = Button(self.topContainer, padx=button_padx, > pady=button_pady) > self.wordListButton.configure(text="Word List", > command=self.define_Frame) > self.wordListButton.pack(side=LEFT) > #END WORD LIST BUTTON--------------- > > #DEFINITIONS BUTTON----------------- > self.definitionsButton = Button(self.topContainer, > padx=button_padx, > pady=button_pady, > command = self.defs_Frame) > self.definitionsButton.configure(text="Definitions") > self.definitionsButton.pack(side=LEFT) > #END DEFINITIONS BUTTON-------------- > def destroyMainChildren(self): > #This will make sure taht when a button is pushed for a new set of > frames > #that everything will go smoothly. > for widget in self.mainContainer.pack_slaves(): > widget.destroy() > def destroyDefButFrame(self): > #The define it button is under a different frame than main frame > #so this is another way of killing it. > for widget in self.defineButtonF.pack_slaves(): > widget.destroy() > self.defineButtonF.destroy() > > > > > def defs_Frame(self): > #Destroy main's children > self.destroyMainChildren() > self.destroyDefButFrame() > > optionsFrame = Frame(self.mainContainer, bg="red") > optionsFrame.pack(side=TOP, expand=YES, ipadx=5, > ipady=5, fill = X, anchor=N) > > > > > > > #---------------------DEFINE FRAME------------------------ > #This frame is the frame that has all the entry widgets, it is > called > #the define frame. when you hit the "wordListButton" this should > come up > def define_Frame(self): > > #Destroy all child widgets > self.destroyMainChildren() > > > myMessage="Please type in all the words that you would like to > define" > Label(self.mainContainer, text=myMessage, > justify=LEFT).pack(side=TOP, anchor=N) > > #The LEFT Frame that comes up when you hit define > self.defineContainer1 = Frame(self.mainContainer, bg="green") > self.defineContainer1.pack(side=LEFT, ipadx = 5, > ipady = 5, expand=YES, fill=BOTH) > > #The RIGHT Frame that comes up when you hit define > self.defineContainer2 = Frame(self.mainContainer, bg="yellow") > self.defineContainer2.pack(side=LEFT, ipadx=5, > ipady=5, expand=YES, fill=BOTH) > > #This frame is where the define button goes > self.defineButtonF = Frame(self.mainContainer, bg="red") > self.defineButtonF.pack(side=BOTTOM, > anchor=S, > ipady=5, > ipadx=5, > fill=BOTH, > expand=YES) > > > #----------------------------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) > > self.listBuffer=[self.e1, self.e2, self.e3, self.e4, > self.e5, self.e6, self.e7, self.e8, > self.e9, self.e10, self.e11, > self.e12, self.e13, self.e14] > self.wordList=['None', 'None', 'None', 'None', 'None', 'None', > 'None', 'None', 'None', 'None', 'None', 'None', > 'None', 'None'] > self.finalWords=[] > > self.definition1=[] > self.definition2=[] > self.definition3=[] > self.definition4=[] > self.definition5=[] > self.definition6=[] > self.definition7=[] > self.definition8=[] > self.definition9=[] > self.definition10=[] > self.definition11=[] > self.definition12=[] > self.definition13=[] > self.definition14=[] > > self.definitionsList=[self.definition1, self.definition2, > self.definition3, > self.definition4, self.definition5, > self.definition6, > self.definition7, self.definition8, > self.definition9, > self.definition10, self.definition11, > self.definition12, > self.definition13, self.definition14] > self.bufferList = [] > > > #-------------------------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." > self.getWords() > > def getWords(self): > self.n=0 > for entry in self.listBuffer: > self.wordList[self.n] = entry.get() > self.n=self.n + 1 > for item in self.wordList: > if item != '': > self.finalWords.append(item) > #wordList is the list of all the words, entered or not > #print self.wordList > #finalWords is the list of words refined, with just the ones the > user typed > #print self.finalWords > > > #----------------------------END DEFINE BUTTON STUFF---------------------- > #------------------------------------------------------------------------- > #-----------END OF EVERYTHING FOR THE DEFINE FRAMES----------- > #------------------------------------------------------------------------- > > > > root = Tk() > app = App(root) > root.mainloop() > > there is a button towards the bottom called the defineIt button. this is the > button in the red frame. If you look right above the big comment called > constants for buttons, that frame called definebuttonF is the red frame. I > need the parent to be the mainContainer frame. However, if you make it the > baseContainer frame. that is what I want it to look like. See if you can > make it work. I haven't been able to yet. I know this may seem like it would > take a while; but I really would like it if someone helped. > > -- > View this message in context: > http://www.nabble.com/Issue-with-the-layout-of-a-frame-tp18252118p18252118.html > Sent from the Python - tkinter-discuss mailing list archive at Nabble.com. > > _______________________________________________ > Tkinter-discuss mailing list > Tkinter-discuss@python.org > http://mail.python.org/mailman/listinfo/tkinter-discuss > -- -- Guilherme H. Polo Goncalves _______________________________________________ Tkinter-discuss mailing list Tkinter-discuss@python.org http://mail.python.org/mailman/listinfo/tkinter-discuss