Skip to content

Commit 2268ee7

Browse files
Merge pull request #1261 from MesutKihal/master
age_calc_gui.py
2 parents 696dfae + 17f8b17 commit 2268ee7

File tree

1 file changed

+67
-60
lines changed

1 file changed

+67
-60
lines changed

Age-Calculator-GUI/age_calc_gui.py

Lines changed: 67 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -1,63 +1,70 @@
11
# import libraries
2-
from tkinter import *
2+
import tkinter as tk
33
from datetime import date
44

5-
# initialized window
6-
root = Tk()
7-
root.geometry('280x300')
8-
root.resizable(0, 0)
9-
root.title('Age Calculator')
10-
statement = Label(root)
11-
12-
# defining the function for calculating age
13-
14-
15-
def ageCalc():
16-
global statement
17-
statement.destroy()
18-
today = date.today()
19-
birthDate = date(int(yearEntry.get()), int(
20-
monthEntry.get()), int(dayEntry.get()))
21-
age = today.year - birthDate.year
22-
if today.month < birthDate.month or today.month == birthDate.month and today.day < birthDate.day:
23-
age -= 1
24-
statement = Label(text=f"{nameValue.get()}'s age is {age}.")
25-
statement.grid(row=6, column=1, pady=15)
26-
27-
28-
# creating a label for person's name to display
29-
l1 = Label(text="Name: ")
30-
l1.grid(row=1, column=0)
31-
nameValue = StringVar()
32-
33-
# creating a entry box for input
34-
nameEntry = Entry(root, textvariable=nameValue)
35-
nameEntry.grid(row=1, column=1, padx=10, pady=10)
36-
37-
# label for year in which user was born
38-
l2 = Label(text="Year: ")
39-
l2.grid(row=2, column=0)
40-
yearValue = StringVar()
41-
yearEntry = Entry(root, textvariable=yearValue)
42-
yearEntry.grid(row=2, column=1, padx=10, pady=10)
43-
44-
# label for month in which user was born
45-
l3 = Label(text="Month: ")
46-
l3.grid(row=3, column=0)
47-
monthValue = StringVar()
48-
monthEntry = Entry(root, textvariable=monthValue)
49-
monthEntry.grid(row=3, column=1, padx=10, pady=10)
50-
51-
# label for day/date on which user was born
52-
l4 = Label(text="Day: ")
53-
l4.grid(row=4, column=0)
54-
dayValue = StringVar()
55-
dayEntry = Entry(root, textvariable=dayValue)
56-
dayEntry.grid(row=4, column=1, padx=10, pady=10)
57-
58-
# create a button for calculating age
59-
button = Button(text="Calculate age", command=ageCalc)
60-
button.grid(row=5, column=1)
61-
62-
# infinite loop to run program
63-
root.mainloop()
5+
# GUI App class
6+
class App:
7+
def __init__(self):
8+
# initialized window
9+
self.master = tk.Tk()
10+
self.master.geometry('280x300')
11+
self.master.configure(bg="lightblue")
12+
self.master.resizable(0, 0)
13+
self.master.title('Age Calculator')
14+
self.statement = tk.Label(self.master)
15+
16+
def run(self):
17+
# creating a label for person's name to display
18+
self.l1 = tk.Label(text="Name: ", font="courier 10", bg="lightblue")
19+
self.l1.grid(row=1, column=0)
20+
nameValue = tk.StringVar()
21+
22+
# creating a entry box for input
23+
self.nameEntry = tk.Entry(self.master, textvariable=nameValue, relief="solid")
24+
self.nameEntry.grid(row=1, column=1, padx=10, pady=10)
25+
26+
# label for year in which user was born
27+
self.l2 = tk.Label(text="Year: ", font="courier 10", bg="lightblue")
28+
self.l2.grid(row=2, column=0)
29+
yearValue = tk.StringVar()
30+
self.yearEntry = tk.Entry(self.master, textvariable=yearValue, relief="solid")
31+
self.yearEntry.grid(row=2, column=1, padx=10, pady=10)
32+
33+
# label for month in which user was born
34+
self.l3 = tk.Label(text="Month: ", font="courier 10", bg="lightblue")
35+
self.l3.grid(row=3, column=0)
36+
monthValue = tk.StringVar()
37+
self.monthEntry = tk.Entry(self.master, textvariable=monthValue, relief="solid")
38+
self.monthEntry.grid(row=3, column=1, padx=10, pady=10)
39+
40+
# label for day/date on which user was born
41+
self.l4 = tk.Label(text="Day: ", font="courier 10", bg="lightblue")
42+
self.l4.grid(row=4, column=0)
43+
dayValue = tk.StringVar()
44+
self.dayEntry = tk.Entry(self.master, textvariable=dayValue, relief="solid")
45+
self.dayEntry.grid(row=4, column=1, padx=10, pady=10)
46+
47+
# defining the function for calculating age
48+
def ageCalc():
49+
self.statement.destroy()
50+
today = date.today()
51+
birthDate = date(int(self.yearEntry.get()), int(
52+
self.monthEntry.get()), int(self.dayEntry.get()))
53+
age = today.year - birthDate.year
54+
if today.month < birthDate.month or today.month == birthDate.month and today.day < birthDate.day:
55+
age -= 1
56+
self.statement = tk.Label(text=f"{nameValue.get()}'s age is {age}.", font="courier 10", bg="lightblue")
57+
self.statement.grid(row=6, column=1, pady=15)
58+
59+
# create a button for calculating age
60+
self.button = tk.Button(text="Calculate age", font="courier 12 bold", fg="white", bg="dodgerblue", command=ageCalc)
61+
self.button.grid(row=5, column=1)
62+
63+
# infinite loop to run program
64+
self.master.mainloop()
65+
66+
67+
if __name__ == '__main__':
68+
age_calc = App()
69+
age_calc.run()
70+

0 commit comments

Comments
 (0)