Question

# Coding in Python Add radio button options for filing status to the tax calculator program of...

Coding in Python

Add radio button options for filing status to the tax calculator program of Project 1. The user selects one of these options to determine the tax rate. The Single option’s rate is 20%. The Married option is 15%. The Divorced option is 10%. The default option is Single.

Be sure to use the field names provided in the comments in your starter code.

==================

Project 1 code:

# Initialize the constants

TAX_RATE = 0.20

STANDARD_DEDUCTION = 10000.0

DEPENDENT_DEDUCTION = 3000.0

from breezypythongui import EasyFrame

class TaxCalculator(EasyFrame):

"""Application window for the tax calculator."""

def __init__(self):

"""Sets up the window and the widgets."""

EasyFrame.__init__(self, title="Tax Calculator")

# Label and field for the income

# Label and field for the number of dependents

# The command button

# Label and field for the tax

self.taxField = self.addFloatField(value=0.0, row=3, column=1, precision=2)

# The event handler method for the button

def computeTax(self):

"""Obtains the data from the input fields and uses

them to compute the tax, which is sent to the

output field."""

income = self.incomeField.getNumber()

numDependents = self.depField.getNumber()

tax = (income - STANDARD_DEDUCTION - numDependents*DEPENDENT_DEDUCTION) * TAX_RATE

self.taxField.setNumber(tax)

def main():

TaxCalculator().mainloop()

if __name__ == '__main__':

main()

==================

My code for this exercise (which is incorrect):

# import tkinter for python gui elements

from tkinter import *

# function definition

def tax():

# assuming some amount to find the tax amount

amount = 35000

# if the selected option is 'single' then get 20% of assumed amount

if var.get() == 1:

tax_amt = 0.2 * amount

# if 'married' then 15% of assumed amount

elif var.get() == 2:

tax_amt = 0.15 * amount

# if divorced then 10% of assumed amount

elif var.get() == 3:

tax_amt = 0.1 * amount

# some display text

disp = "Taxable amount based on the selection is : " + str(tax_amt)

# set the label (which is created in the following steps) with the display text

label.config(text = disp)

# prepare a root window

root = Tk()

# name the root window

root.title("Tax calculator")

# mention the dimension of root window

root.geometry("300x200")

# initialize the variable as integer

var = IntVar()

# set the integer value to 1 i.e, first radio button selection by default

var.set(1)

# create buttons and place them in window as required

R1 = Radiobutton(root, text = "Single", variable = var, value = 1)

R1.place(x=50,y=50)

R2 = Radiobutton(root, text = "Married", variable = var, value = 2)

R2.place(x=50,y=80)

R3 = Radiobutton(root, text = "Divorced", variable = var, value = 3)

R3.place(x=50,y=110)

# create button and call the function when this button clicked

calculate_button = Button(root, text="Calculate", command=tax)

calculate_button.place(x=50, y=140)

# create another button to close the window

quit_button = Button(root, text="Quit", command=root.quit)

quit_button.place(x=130, y=140)

# create a label and place it so that the display text in window is displayed as expected

label = Label(root)

label.place(x=20, y=20)

# call mainloop() to start the event

root.mainloop()

Here is the code

```from tkinter import *

def taxamount(income, percent):
tax = income * (percent/100)
return tax

def calculate():
outputField.delete(0,'end')
income = float(incomefield.get())
dependents = int(dependentsfield.get())
percent = p.get()
tax = taxamount((income/dependents),percent)   #here i pass income as income/dependents
output.set(str(tax))

root = Tk()
root.configure(background="white")
root.title("Tax Calculator")
root.resizable(1,0)
root.columnconfigure(0,weight=1)
root.columnconfigure(1,weight=1)

labelincome = Label(root, text="Income",background="white")
labelincome.grid(row=1,column=0, sticky=E)
labeldependents = Label(root, text="Dependents",background="white")
labeldependents.grid(row=2,column=0, sticky=E)

incomefield = Entry(root)
incomefield.grid(row=1,column=1,sticky=W)
dependentsfield = Entry(root)
dependentsfield.grid(row=2,column=1,sticky=W)

p=IntVar()
p.set(20)

button = Button(root, text="Compute", command=calculate)
button.grid(row=3, columnspan=2)

labeltotaltax = Label(root, text="Total tax",background="white")
labeltotaltax.grid(row=4,column=0, sticky=E)
output = StringVar()
outputField = Entry(root, textvariable=output,justify=CENTER)
outputField.grid(row=4,column=1,sticky=W)
outputField.columnconfigure(0,weight=1)

root.mainloop()```

#### Earn Coins

Coins can be redeemed for fabulous gifts.