Prerequisites : Introduction to tkinter | Program to calculate compound interest
Python offers multiple options for developing a GUI (Graphical User Interface). Out of all the GUI methods, Tkinter is the most commonly used method. In this article, we will learn how to create a Compound Interest GUI Calculator application using Tkinter, with a step-by-step guide.
To create a Tkinter:
- Importing the module – tkinter
- Create the main window (container)
- Add any number of widgets to the main window.
- Apply the event Trigger on the widgets.
Below is what the GUI will look like:
Let’s create a GUI based Compound Interest Calculator application.
Below is the implementation :
Python3
# import all classes / functions from the tkinter from tkinter import *
# Function for clearing the # contents of all entry boxes def clear_all() :
# whole content of entry boxes is deleted
principal_field.delete( 0 , END)
rate_field.delete( 0 , END)
time_field.delete( 0 , END)
compound_field.delete( 0 , END)
# set focus on the principal_field entry box
principal_field.focus_set()
# Function to find compound interest def calculate_ci():
# get a content from entry box
principal = int (principal_field.get())
rate = float (rate_field.get())
time = int (time_field.get())
# Calculates compound interest
CI = principal * ( pow (( 1 + rate / 100 ), time))
# insert method inserting the
# value in the text entry box.
compound_field.insert( 10 , CI)
# Driver code if __name__ = = "__main__" :
# Create a GUI window
root = Tk()
# Set the background colour of GUI window
root.configure(background = 'light green' )
# Set the configuration of GUI window
root.geometry( "400x250" )
# set the name of tkinter GUI window
root.title( "Compound Interest Calculator" )
# Create a Principal Amount : label
label1 = Label(root, text = "Principal Amount(Rs) : " ,
fg = 'black' , bg = 'red' )
# Create a Rate : label
label2 = Label(root, text = "Rate(%) : " ,
fg = 'black' , bg = 'red' )
# Create a Time : label
label3 = Label(root, text = "Time(years) : " ,
fg = 'black' , bg = 'red' )
# Create a Compound Interest : label
label4 = Label(root, text = "Compound Interest : " ,
fg = 'black' , bg = 'red' )
# grid method is used for placing
# the widgets at respective positions
# in table like structure .
# padx keyword argument used to set padding along x-axis .
# pady keyword argument used to set padding along y-axis .
label1.grid(row = 1 , column = 0 , padx = 10 , pady = 10 )
label2.grid(row = 2 , column = 0 , padx = 10 , pady = 10 )
label3.grid(row = 3 , column = 0 , padx = 10 , pady = 10 )
label4.grid(row = 5 , column = 0 , padx = 10 , pady = 10 )
# Create a entry box
# for filling or typing the information.
principal_field = Entry(root)
rate_field = Entry(root)
time_field = Entry(root)
compound_field = Entry(root)
# grid method is used for placing
# the widgets at respective positions
# in table like structure .
# padx keyword argument used to set padding along x-axis .
# pady keyword argument used to set padding along y-axis .
principal_field.grid(row = 1 , column = 1 , padx = 10 , pady = 10 )
rate_field.grid(row = 2 , column = 1 , padx = 10 , pady = 10 )
time_field.grid(row = 3 , column = 1 , padx = 10 , pady = 10 )
compound_field.grid(row = 5 , column = 1 , padx = 10 , pady = 10 )
# Create a Submit Button and attached
# to calculate_ci function
button1 = Button(root, text = "Submit" , bg = "red" ,
fg = "black" , command = calculate_ci)
# Create a Clear Button and attached
# to clear_all function
button2 = Button(root, text = "Clear" , bg = "red" ,
fg = "black" , command = clear_all)
button1.grid(row = 4 , column = 1 , pady = 10 )
button2.grid(row = 6 , column = 1 , pady = 10 )
# Start the GUI
root.mainloop()
|
Output :