using tkinter and python i now have a small App (that will hopefully soon be a fully functioning calculator) where u can push buttons and the corresponding number or operator is shown.
when u press 1, "1" appears on the screen, pres + and "+" appears etc. at the moment every output overwrites the previous so what i want to do is obviosuly to add every new output to a string so that i can read the string and perform the calculation. so i want: * when pushing the button push the token of the button onto a string * display the new string, ie "1+2" for example * want to be able to access this string when pressing calculate so i can figure out which operators should be done first so it can solve something like this: "(1+2*3)(3-4/2)" and not just simple "1+2"-stuff. do i have to have some global string-variable in the GUIframework then? im not sure where to start... here is the code: #! /usr/bin/env python from Tkinter import * import tkMessageBox class GUIFramework(Frame): """This is the GUI""" def __init__(self, master=None): """Initialize yourself""" """Initialise the base class""" Frame.__init__(self,master) """Set the Window Title""" self.master.title("Calculator") """Display the main window" with a little bit of padding""" self.grid(padx=10,pady=10) self.CreateWidgets() def CreateWidgets(self): ## """Create the Entry, set it to be a bit wider""" ## self.enText = Entry(self) ## self.enText.grid(row=0, column=0, columnspan=3) """Create the Button, set the text and the command that will be called when the button is clicked""" self.btnDisplay = Button(self, text="calculate!", state=DISABLED) self.btnDisplay.grid(row=0, column=31) self.btnDisplay = Button(self,text='1',command=lambda n=1:self.Display(n),width=1,height=1) self.btnDisplay.grid(row=3, column=0, padx=5, pady=5) self.btnDisplay = Button(self,text='2',command=lambda n=2:self.Display(n),width=1,height=1) self.btnDisplay.grid(row=3, column=1, padx=5, pady=5) self.btnDisplay = Button(self,text='3',command=lambda n=3:self.Display(n),width=1,height=1) self.btnDisplay.grid(row=3, column=2, padx=5, pady=5) self.btnDisplay = Button(self,text='+',command=lambda n="+":self.Display(n),width=1,height=1) self.btnDisplay.grid(row=3, column=3, padx=5, pady=5) self.btnDisplay = Button(self,text='4',command=lambda n=4:self.Display(n),width=1,height=1) self.btnDisplay.grid(row=4, column=0, padx=5, pady=5) self.btnDisplay = Button(self,text='5',command=lambda n=5:self.Display(n),width=1,height=1) self.btnDisplay.grid(row=4, column=1, padx=5, pady=5) self.btnDisplay = Button(self,text='6',command=lambda n=6:self.Display(n),width=1,height=1) self.btnDisplay.grid(row=4, column=2, padx=5, pady=5) self.btnDisplay = Button(self,text='-',command=lambda n="-":self.Display(n),width=1,height=1) self.btnDisplay.grid(row=4, column=3, padx=5, pady=5) self.btnDisplay = Button(self,text='7',command=lambda n=7:self.Display(n),width=1,height=1) self.btnDisplay.grid(row=5, column=0, padx=5, pady=5) self.btnDisplay = Button(self,text='8',command=lambda n=8:self.Display(n),width=1,height=1) self.btnDisplay.grid(row=5, column=1, padx=5, pady=5) self.btnDisplay = Button(self,text='9',command=lambda n=9:self.Display(n),width=1,height=1) self.btnDisplay.grid(row=5, column=2, padx=5, pady=5) self.btnDisplay = Button(self,text='*',command=lambda n="*":self.Display(n),width=1,height=1) self.btnDisplay.grid(row=5, column=3, padx=5, pady=5) self.btnDisplay = Button(self,text='0',command=lambda n=0:self.Display(n),width=1,height=1) self.btnDisplay.grid(row=6, column=0, padx=5, pady=5) self.btnDisplay = Button(self,text='C',command=lambda n="C":self.Display(n),width=1,height=1) self.btnDisplay.grid(row=6, column=1, padx=5, pady=5) self.btnDisplay = Button(self,text='r',command=lambda n="r":self.Display(n),width=1,height=1) self.btnDisplay.grid(row=6, column=2, padx=5, pady=5) self.btnDisplay = Button(self,text='/',command=lambda n="/":self.Display(n),width=1,height=1) self.btnDisplay.grid(row=6, column=3, padx=5, pady=5) def Display(self, number): #print number self.lbText = Label(self, text=number) self.lbText.grid(row=0, column=0) if __name__ == "__main__": guiFrame = GUIFramework() guiFrame.mainloop() -- http://mail.python.org/mailman/listinfo/python-list