Python – Compound Interest GUI Calculator using Tkinter

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 :

Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape, GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out - check it out now!

Previous
Next