Python Savings Calculator GUI Application
Python programming language has been gaining a lot of popularity lately. It is highly versatile and flexible, and it can be used in a variety of applications.
One such popular use of Python is in developing graphical user interface (GUI) applications. In this article, we will be discussing how to design and build a Savings Calculator GUI application in Python.
We will walk you through the process of creating the main window, adding widgets to the window, and adding functionality to the application.
Designing the Savings Calculator in Python:
The first step in designing the Savings Calculator GUI application in Python is to create the main window.
This can be done using the tkinter library, which is built into Python. With tkinter, it is straightforward to create a window using a few lines of code.
You can specify the size of the window, the title, and other properties. Here is the code to create a window:
import tkinter as tk
win = tk.Tk()
win.title("Savings Calculator")
win.geometry("400x300")
win.mainloop()
This code creates a window with a title “Savings Calculator” and size 400×300. The `win.mainloop()` function is required to keep the window open and continue running until it is closed.
Adding Widgets to the Window:
The next step is to add widgets to the window. In our Savings Calculator GUI application, we will be adding three widgets, a Label, an Entry, and a Button.
1. Label:
A Label is a widget that displays a text message on the window.
In our application, we will use four labels to display four categories: Total Salary, Travel, Food, and Miscellaneous.
totalSalary_lbl = tk.Label(win, text="Total Salary")
travel_lbl= tk.Label(win, text="Travel")
food_lbl = tk.Label(win, text="Food")
misc_lbl= tk.Label(win, text="Miscellaneous")
2. Entry:
An Entry is a widget that allows the user to enter data. In our application, we will use four Entry widgets to allow the user to input data for each category.
totalSalary_entry = tk.Entry(win)
travel_entry = tk.Entry(win)
food_entry = tk.Entry(win)
misc_entry = tk.Entry(win)
3. Button:
A Button is a widget that the user can click to perform an action.
In our application, we will use three buttons, an Exit button, a Clear button, and a Calculate button.
exit_button = tk.Button(win, text="Exit", command=win.destroy)
clear_button = tk.Button(win, text="Clear", command=clear_all)
calculate_button = tk.Button(win, text="Calculate", command=cal_savings)
Adding Functionality to the Application:
Now that we have added all the necessary widgets to the window, the next step is to add functionality to the application.
We will achieve this by writing functions that will be used when the buttons are clicked.
1. Working of Entry Boxes:
To get the data entered in the Entry boxes, we will need to create variables to store the data. In our application, we will create four variables, one for each category.
total_salary = tk.StringVar()
travel = tk.StringVar()
food = tk.StringVar()
misc = tk.StringVar()
The `StringVar()` function is used to create the variables, which we will then link to the Entry widgets using the `textvariable` attribute.
totalSalary_entry.config(textvariable=total_salary)
travel_entry.config(textvariable=travel)
food_entry.config(textvariable=food)
misc_entry.config(textvariable=misc)
2. Exit Button:
The Exit button will close the application window when clicked. To achieve this, we will use the `exit` function.
exit_button = tk.Button(win, text="Exit", command=win.destroy)
3. Clear Button:
The Clear button will clear all the Entry boxes when clicked.
To do this, we will create a function called `clear_all`.
def clear_all():
totalSalary_entry.delete(0, tk.END)
travel_entry.delete(0, tk.END)
food_entry.delete(0, tk.END)
misc_entry.delete(0, tk.END)
This function will delete all the contents of each Entry box.
4. Calculate Button:
The Calculate button will perform the calculation of the user’s savings based on the data entered in each category.
We will create a function called `cal_savings` to perform this calculation.
def cal_savings():
total_salary_amt = float(total_salary.get())
travel_amt = float(travel.get())
food_amt = float(food.get())
misc_amt = float(misc.get())
savings = total_salary_amt - travel_amt - food_amt - misc_amt
savings_lbl.config(text="Savings: ${:.2f}".format(savings))
This function will retrieve the data entered in each Entry box, convert it to a float value, perform the calculation, and display the result in a label.
Conclusion:
It is that simple and straightforward to design and build a Savings Calculator GUI application using Python. With the knowledge from this article, you can apply the same principles to develop other GUI applications to meet your needs.
With so much versatility and ease in using Python, there are endless possibilities for GUI application development.
Implementing a Savings Calculator in Tkinter:
In the previous sections, we discussed the step-by-step process of designing a Savings Calculator GUI application in Python.
We created the main window, added widgets, and added functionality to the application. In this section, we will discuss how to define functions for the buttons and provide the final code for the Savings Calculator application.
Defining Functions for Buttons:
To add functionality to the Exit, Clear, and Calculate buttons, we need to define functions that will be called when the buttons are clicked. We do this by using the `command` parameter when creating the buttons.
1. Exit Button:
When the Exit button is clicked, we want to close the application window.
To do this, we will define a function called `close_app` that will call the `destroy` method on the main window.
def close_app():
win.destroy()
We can then use the `close_app` function as the command parameter for the Exit button.
exit_button = tk.Button(win, text="Exit", command=close_app)
2. Clear Button:
When the Clear button is clicked, we want to clear all the Entry boxes.
To do this, we will define a function called `clear_boxes` that will delete the contents of all the Entry boxes.
def clear_boxes():
totalSalary_entry.delete(0, tk.END)
travel_entry.delete(0, tk.END)
food_entry.delete(0, tk.END)
misc_entry.delete(0, tk.END)
savings_lbl.config(text="")
We can then use the `clear_boxes` function as the command parameter for the Clear button.
clear_button = tk.Button(win, text="Clear", command=clear_boxes)
3. Calculate Button:
When the Calculate button is clicked, we want to perform the calculation and display the result in a label.
To do this, we will define a function called `calculate_savings` that will retrieve the data entered in the Entry boxes, perform the calculation, and display the result in a label.
def calculate_savings():
total_salary_amt = float(total_salary.get())
travel_amt = float(travel.get())
food_amt = float(food.get())
misc_amt = float(misc.get())
savings = total_salary_amt - travel_amt - food_amt - misc_amt
savings_lbl.config(text="Savings: ${:.2f}".format(savings))
We can then use the `calculate_savings` function as the command parameter for the Calculate button.
calculate_button = tk.Button(win, text="Calculate", command=calculate_savings)
Final Code:
Here is the complete code for the Savings Calculator application, which includes all the widgets and functions.
import tkinter as tk
win = tk.Tk()
win.title("Savings Calculator")
win.geometry("400x300")
total_salary = tk.StringVar()
travel = tk.StringVar()
food = tk.StringVar()
misc = tk.StringVar()
totalSalary_lbl = tk.Label(win, text="Total Salary")
travel_lbl = tk.Label(win, text="Travel")
food_lbl = tk.Label(win, text="Food")
misc_lbl = tk.Label(win, text="Miscellaneous")
totalSalary_entry = tk.Entry(win, textvariable=total_salary)
travel_entry = tk.Entry(win, textvariable=travel)
food_entry = tk.Entry(win, textvariable=food)
misc_entry = tk.Entry(win, textvariable=misc)
exit_button = tk.Button(win, text="Exit", command=win.destroy)
clear_button = tk.Button(win, text="Clear", command=clear_boxes)
calculate_button = tk.Button(win, text="Calculate", command=calculate_savings)
savings_lbl = tk.Label(win, text="")
totalSalary_lbl.grid(row=0, column=0)
totalSalary_entry.grid(row=0, column=1)
travel_lbl.grid(row=1, column=0)
travel_entry.grid(row=1, column=1)
food_lbl.grid(row=2, column=0)
food_entry.grid(row=2, column=1)
misc_lbl.grid(row=3, column=0)
misc_entry.grid(row=3, column=1)
exit_button.grid(row=4, column=0)
clear_button.grid(row=4, column=1)
calculate_button.grid(row=4, column=2)
savings_lbl.grid(row=5, columnspan=2)
def close_app():
win.destroy()
def clear_boxes():
totalSalary_entry.delete(0, tk.END)
travel_entry.delete(0, tk.END)
food_entry.delete(0, tk.END)
misc_entry.delete(0, tk.END)
savings_lbl.config(text="")
def calculate_savings():
total_salary_amt = float(total_salary.get())
travel_amt = float(travel.get())
food_amt = float(food.get())
misc_amt = float(misc.get())
savings = total_salary_amt - travel_amt - food_amt - misc_amt
savings_lbl.config(text="Savings: ${:.2f}".format(savings))
win.mainloop()
Tested Numerical Values:
We can test the application by entering numerical values in the Entry boxes and clicking the Calculate button. For example, if we enter a Total Salary of 5000, Travel expenses of 1000, Food expenses of 500, and Miscellaneous expenses of 200, we should see a Savings value of 3300 displayed in the label.
Output:
After entering the calculated numerical values and pressing the calculate button, the output will be displayed. In our example, the output is Savings: $3300.00.
Conclusion:
In the end, we learned that building your own GUI application using Python can be both fun and rewarding. You don’t need to be an expert in Python programming to build a Savings Calculator GUI application in Python.
With the simple instructions provided in this article, you can easily create your own GUI application. You can also modify the code and add more features to your application as you become more skilled in Python programming.
In this article, we learned how to design and implement a Savings Calculator GUI application in Python using the tkinter library. We discussed the step-by-step process of creating the main window, adding widgets to the window, and how to add functionality to the application using functions for the buttons.
We also provided a complete code for the application that we can use as a starting point for further development. This article highlights the importance of Python programming language, as it is highly versatile and flexible, and it can be used in a variety of applications.
The takeaway from this article is that building your own GUI application using Python can be both fun and rewarding, especially since there is no need to be an expert in Python programming to achieve it. By applying the instructions provided in this article, you get to create your own Savings Calculator GUI application and customize it with additional features as you grow your skills in Python programming.