I'm coding a GUI program which presents the user with a resteraunt menu, and
allows them to choose how much of each item they want to purchase before
ordering. Here is my code: #Order up GUI program
#User is presented with a simple resturaunt menu
#They then select the items they want to order and then they are presented with
the total billfrom tkinter import *class Application(Frame):
"""Based on the frame class, the application widget holds all other
widgets. """
def __init__(self,master):
"""Initialise the frame. """
super(Application,self).__init__(master)
self.grid()
self.create_widgets()
self.total=0
self.spag_ent_check=True
self.tater_ent_check=True
self.soup_ent_check=True
self.fish_ent_check=True self.spag_cost=5.15
self.tater_cost=4.70
self.soup_cost=4.20
self.fish_cost=5.95 def create_widgets(self):
"""Create all of the widgets in the program. """
Label(self,text="Select the items you want to
order:").grid(row=0,column=0,sticky=W)
Label(self,text="Quantity:").grid(row=0,column=0,sticky=E)
Label(self,text="Spaghetti Bolognese (5.15)").grid(row=1,column=0,sticky=W)
self.spag_ent=Entry(self)
self.spag_ent.grid(row=1,column=0,sticky=E)
Label(self,text="Potato Salad (4.70)").grid(row=2,column=0,sticky=W)
self.tater_ent=Entry(self)
self.tater_ent.grid(row=2,column=0,sticky=E)
Label(self,text="Chicken Soup (4.20)").grid(row=3,column=0,sticky=W)
self.soup_ent=Entry(self)
self.soup_ent.grid(row=3,column=0,sticky=E)
Label(self,text="Smoked Salmon (5.95)").grid(row=4,column=0,sticky=W)
self.fish_ent=Entry(self)
self.fish_ent.grid(row=4,column=0,sticky=E)
Label(self,text="Total Bill:").grid(row=7,column=0,sticky=W)
self.bill_txt=Text(self,height=10,wrap=WORD)
self.bill_txt.grid(row=8,column=0,sticky=W)
Button(self,text="Order
Up!",command=self.calc_total).grid(row=5,column=0,sticky=W) def
calc_total(self):
"""Update the text widget if they order Spaghetti Bolognese. """
try:
int(spag_ent.get())
except:
message="You have to enter a number in the quantity box. \n"
self.bill_txt.delete(0.0,END)
self.bill_txt.insert(0.0,message)
self.spag_ent_check=False # set to False if user enters anything
other than an integer in the entry widget if self.spag_ent_check:
spag_quant=self.spag_ent.get()
spag_total=self.spag_cost*spag_quant
self.total+=spag_total try:
int(tater_ent.get())
except:
message="You have to enter a number in the quantity box. \n"
self.bill_txt.delete(0.0,END)
self.bill_txt.insert(0.0,message)
self.tater_ent_check=False # set to False if user enters anything
other than an integer in the entry widget if self.tater_ent_check:
tater_quant=self.tater_ent.get()
tater_total=self.tater_cost*tater_quant
self.total+=tater_total try:
int(soup_ent.get())
except:
message="You have to enter a number in the quantity box. \n"
self.bill_txt.delete(0.0,END)
self.bill_txt.insert(0.0,message)
self.soup_ent_check=False # set to False if user enters anything
other than an integer in the entry widget if self.soup_ent_check:
soup_quant=self.soup_ent.get()
soup_total=self.soup_cost*soup_quant
self.total+=soup_total try:
int(fish_ent.get())
except:
message="You have to enter a number in the quantity box. \n"
self.bill_txt.delete(0.0,END)
self.bill_txt.insert(0.0,message)
self.fish_ent_check=False # set to False if user enters anything
other than an integer in the entry widget if self.fish_ent_check:
fish_quant=self.fish_ent.get()
fish_total=self.fish_cost*fish_quant
self.total+=fish_total
self.bill_txt.delete(0.0,END)
self.bill_txt.insert(0.0,self.total)#main
root=Tk()
root.title("Order Up!")
app=Application(root)
root.mainloop()
The 'calc_total' function is supposed to calculate the users bill and then
display it in the text widget, but every time I try it, it comes up as 0. Can
anyone help me? Thanks in advance,Myles Broomes
_______________________________________________
Tutor maillist - [email protected]
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor