Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

In Python, Write a GUI program that calculates the tip and total to pay at a res

ID: 3816816 • Letter: I

Question

In Python, Write a GUI program that calculates the tip and total to pay at a restaurant. The user should enter the amount of the bill without the tip, and then be given choices as to the percent to tip, say, 10%, 15%, 18%, or 20%, by radio buttons. When the user clicks a radio button, the tip is calculated, shown to the user, and added to the bill for the total to be paid. The total is displayed as well. I have a good amount of code done. Please help me comment it better and finish the rest of the percentages

import tkinter as t <--------- PLEASE Do Not use (from tkinter import *) it's not working with my interpreter! Please just avoid it. Thank you!
#Creating buttons.
class Calculator(Frame):
""" A GUI tip calculator."""
def __init__(self, master):
Frame.__init__(self, master)
self.grid()
self.creating_buttons()

def creating_buttons(self):
"""This list includes Entry fields, which the user will use to define
several objects such as Bill, and how many people are paying on that bill."""
#Create an entry field button for how much the bill total is.
#Create a label
bill_lbl = Label(self,text = "Bill: ")
bill_lbl.grid(row = 1, column = 0,columnspan = 1, sticky = W)
#Create an Entry field.
## Create a StringVar and link it to the entry box
self.billvar = StringVar()
bill_ent = Entry(self, textvariable = self.billvar)
bill_ent.grid(row = 1,
column = 1,
sticky = W)
#Create a Button for how many people will be paying on the bill
#Create label
people_paying_lbl = Label(self,
text = "How many people are paying on this bill?: ")
people_paying_lbl.grid(row = 2,
column = 0,
columnspan = 1,
sticky = W)
#Create an entry field
## Create a StringVar and link it to the entry box
self.pplvar = StringVar()
people_paying_ent = Entry(self, textvariable = self.pplvar)
people_paying_ent.grid(row = 2,
column = 1,
sticky = W)
#Create a text box to display the totals in
## This had to be self.bill_total_txt, to be able to put text in it from the total function
self.bill_total_txt = Text(self,
height = 10,
width = 40,
wrap = WORD)
self.bill_total_txt.grid(row = 3,
column = 0,
columnspan = 2,
sticky = W)
#Create a Submit button
submit = Button(self,
text = "Submit",
command = self.total)
submit.grid(row = 4,
column = 0,
sticky = W)

def total(self):
""" Takes the values from Bill, and # of people to get the amount that will be
displayed in the text box."""
TAX = .15
## Try to convert the bill to a float and the number of people to an integer
try:
bill = float(self.billvar.get())
people = int(self.pplvar.get())
## If something goes wrong tell the user the input is invalid
except:
self.bill_total_txt.delete(0.0, END)
self.bill_total_txt.insert(0.0, 'Invalid input')
## If the conversion was possible, calculate the tip, the total amount and the amout per person and format them as a string with two decimals
## Then create the complete message as a list and join it togeather when writing it to the textbox
else:
tip = "%.2f" % (TAX * bill)
tot = "%.2f" % (TAX * bill + bill)
tot_pp = "%.2f" % ((TAX * bill + bill) / people)
Total = ["The tip is: $", tip,
" The total for the bill is: $",
tot,
" divided among the people paying equally is: $",
tot_pp,
" per person."]
self.bill_total_txt.delete(0.0, END)
self.bill_total_txt.insert(0.0, ''.join(Total))

#Starting the Program
root = Tk()
root.title("Tip Calculator")
app = Calculator(root)
root.mainloop()

Explanation / Answer

from tkinter import * #Creating buttons. class Calculator(Frame): """ A GUI tip calculator.""" def __init__(self, master): Frame.__init__(self, master) self.grid() self.creating_buttons() def creating_buttons(self): """This list includes Entry fields, which the user will use to define several objects such as Bill, and how many people are paying on that bill.""" #Create an entry field button for how much the bill total is. #Create a label bill_lbl = Label(self, text = "Bill: ") bill_lbl.grid(row = 1, column = 0, columnspan = 1, sticky = W) #Create an Entry field. bill_ent = Entry(self) bill_ent.grid(row = 1, column = 1, sticky = W) #Create a Button for how many people will be paying on the bill #Create label people_paying_lbl = Label(self, text = "How many people are paying on this bill?: ") people_paying_lbl.grid(row = 2, column = 0, columnspan = 1, sticky = W) #Create an entry field people_paying_ent = Entry(self) people_paying_ent.grid(row = 2, column = 1, sticky = W) #Create a text box to display the totals in bill_total_txt = Text(self, width = 40, height = 40, wrap = WORD) bill_total_txt.grid(row = 3, column = 0, columnspan = 2, sticky = W) #Create a Submit button submit = Button(self, text = "Submit", command = self.total) submit.grid(row = 4, column = 0, sticky = W) def total(self): """ Takes the values from Bill, and # of people to get the amount that will be displayed in the text box.""" TAX = .15 bill = float(bill_ent) people = people_paying_ent Total = ("The tip is: $", TAX * bill, " The total for the bill is: $", TAX * bill + bill, "divided among the people paying equally is: $", TAX * bill + bill / people "per, person.") bill_total_txt.delete(0.0, END) bill_total_txt.insert(0.0, Total) #Starting the Program root = Tk() root.title("Tip Calculator") app = Calculator(root) root.mainloop() `

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote