Build an Age Calculator using Python Tkinter
Hello coders, In this program we are going to create an age calculator using Tkinter with GUI (Graphical user interface) in Python.
The most commonly used toolkit is Tkinter only. As well as it is the standard toolkit used in Python for GUI.
AGE CALCULATOR USING TKINTER
Steps to create GUI:
- Install Tkinter using pip install.
- Import Tkinter.
- Create the main window.
- Define the number of widgets
Algorithm:
- Define : clearAll, calculateAge, checkError as three functions.
- ClearAll: it clears all the values of each label.
- calculateAge: It contains the formulae to calculate the number of years months and days.
- checkError: it returns the exception if the values entered are either out of range or are of the different data types.
- Create labels, textbox, and buttons using Tkinter in the main.
Source code:
# import all functions from the tkinter
from tkinter import *
# import messagebox class from tkinter
from tkinter import messagebox
# Function for clearing the
# contents of all text entry boxes
def clearAll() :
# deleting the content from the entry box
dayField.delete(0, END)
monthField.delete(0, END)
yearField.delete(0, END)
givenDayField.delete(0, END)
givenMonthField.delete(0, END)
givenYearField.delete(0, END)
resultDayField.delete(0, END)
resultMonthField.delete(0, END)
resultYearField.delete(0, END)
# function for checking error
def checkError() :
if (dayField.get() == "" or monthField.get() ==
""or yearField.get() == "" or
givenDayField.get() == ""or givenMonthField.get() == ""
or givenYearField.get() == "") :
messagebox.showerror("Input Error")
clearAll()
return -1
# function to calculate Age
def calculateAge() :
# check for error
value = checkError()
# if error is occur then return
if value == -1 :
return
else :
# take a value from the respective entry boxes
# get method returns current text as string
birth_day = int(dayField.get())
birth_month = int(monthField.get())
birth_year = int(yearField.get())
given_day = int(givenDayField.get())
given_month = int(givenMonthField.get())
given_year = int(givenYearField.get())
month_values =[31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
if (birth_day > given_day):
given_month = given_month - 1
given_day = given_day + month_values[birth_month-1]
if (birth_month > given_month):
given_year = given_year - 1
given_month = given_month + 12
# calculate day, month, year
cal_day = given_day - birth_day;
cal_month = given_month - birth_month;
cal_year = given_year - birth_year;
# calculated day, month, year write back
# to the respective entry boxes
# insert method inserting the
# value in the text entry box.
rsltDayField.insert(10, str(cal_day))
rsltMonthField.insert(10, str(cal_month))
rsltYearField.insert(10, str(cal_year))
# Driver Code
if __name__ == "__main__" :
# Create a GUI window
gui = Tk()
# Set the background colour of GUI window
gui.configure(background = "turquoise")
# set the name of tkinter GUI window
gui.title("Age Calculator")
# Set the configuration of GUI window
gui.geometry("525x300")
# Create a Date Of Birth : label
dob = Label(gui, text = "Date Of Birth", bg = "red")
# Create a Given Date : label
givenDate = Label(gui, text = "Given Date", bg = "red")
# Create a Day : label
day_label = Label(gui, text = "Day", bg = "turquoise")
# Create a Month : label
month_label = Label(gui, text = "Month", bg = "turquoise")
# Create a Year : label
year_label = Label(gui, text = "Year", bg = "turquoise")
# Create a Given Day : label
g_day = Label(gui, text = "Given Day", bg = "turquoise")
# Create a Given Month : label
g_month = Label(gui, text = "Given Month", bg = "turquoise")
# Create a Given Year : label
g_year = Label(gui, text = "Given Year", bg = "turquoise")
# Create a Years : label
resultYear = Label(gui, text = "Years", bg = "turquoise")
# Create a Months : label
resultMonth = Label(gui, text = "Months", bg = "turquoise")
# Create a Days : label
resultDay = Label(gui, text = "Days", bg = "turquoise")
# Create a Resultant Age Button and attached to calculateAge function
resultantAge = Button(gui, text = "Resultant Age", fg = "white", bg = "black", command = calculateAge)
# Create a Clear All Button and attached to clearAll function
clearAllEntry = Button(gui, text = "Clear All", fg = "white", bg = "black", command = clearAll)
dayField = Entry(gui)
monthField = Entry(gui)
yearField = Entry(gui)
givenDayField = Entry(gui)
givenMonthField = Entry(gui)
givenYearField = Entry(gui)
rsltYearField = Entry(gui)
rsltMonthField = Entry(gui)
rsltDayField = Entry(gui)
dob.grid(row = 0, column = 1)
day_label.grid(row = 1, column = 0)
dayField.grid(row = 1, column = 1)
month_label.grid(row = 2, column = 0)
monthField.grid(row = 2, column = 1)
year_label.grid(row = 3, column = 0)
yearField.grid(row = 3, column = 1)
givenDate.grid(row = 0, column = 4)
g_day.grid(row = 1, column = 3)
givenDayField.grid(row = 1, column = 4)
g_month.grid(row = 2, column = 3)
givenMonthField.grid(row = 2, column = 4)
g_year.grid(row = 3, column = 3)
givenYearField.grid(row = 3, column = 4)
resultantAge.grid(row = 4, column = 2)
resultYear.grid(row = 5, column = 2)
rsltYearField.grid(row = 6, column = 2)
resultMonth.grid(row = 7, column = 2)
rsltMonthField.grid(row = 8, column = 2)
resultDay.grid(row = 9, column = 2)
rsltDayField.grid(row = 10, column = 2)
clearAllEntry.grid(row = 12, column = 2)
# Start the GUI
gui.mainloop()
Output


In conclusion, Tkinter is the best toolkit for making GUI in Python. I hope, you all have understood the code thoroughly.
Leave a Reply