1
+ # import all classes / functions from the tkinter
2
+ from tkinter import *
3
+
4
+ # Function for clearing the
5
+ # contents of all entry boxes
6
+ def clear_all () :
7
+
8
+ # whole content of entry boxes is deleted
9
+ principal_field .delete (0 , END )
10
+ rate_field .delete (0 , END )
11
+ time_field .delete (0 , END )
12
+ compound_field .delete (0 , END )
13
+
14
+ # set focus on the principal_field entry box
15
+ principal_field .focus_set ()
16
+
17
+
18
+ # Function to find compound interest
19
+ def calculate_ci ():
20
+
21
+ # get a content from entry box
22
+ principal = int (principal_field .get ())
23
+
24
+ rate = float (rate_field .get ())
25
+
26
+ time = int (time_field .get ())
27
+
28
+ # Calculates compound interest
29
+ CI = principal * (pow ((1 + rate / 100 ), time ))
30
+
31
+ # insert method inserting the
32
+ # value in the text entry box.
33
+ compound_field .insert (10 , CI )
34
+
35
+
36
+
37
+ # Driver code
38
+ if __name__ == "__main__" :
39
+
40
+ # Create a GUI window
41
+ root = Tk ()
42
+
43
+ # Set the background colour of GUI window
44
+ root .configure (background = 'dark blue' )
45
+
46
+ # Set the configuration of GUI window
47
+ root .geometry ("400x250" )
48
+
49
+ # set the name of tkinter GUI window
50
+ root .title ("Compound Interest Calculator" )
51
+
52
+ # Create a Principal Amount : label
53
+ label1 = Label (root , text = "Principal Amount(Rs) : " ,
54
+ fg = 'white' , bg = 'red' )
55
+
56
+ # Create a Rate : label
57
+ label2 = Label (root , text = "Rate(%) : " ,
58
+ fg = 'white' , bg = 'red' )
59
+
60
+ # Create a Time : label
61
+ label3 = Label (root , text = "Time(years) : " ,
62
+ fg = 'white' , bg = 'red' )
63
+
64
+ # Create a Compound Interest : label
65
+ label4 = Label (root , text = "Compound Interest : " ,
66
+ fg = 'white' , bg = 'red' )
67
+
68
+ # grid method is used for placing
69
+ # the widgets at respective positions
70
+ # in table like structure .
71
+
72
+ # padx keyword argument used to set padding along x-axis .
73
+ # pady keyword argument used to set padding along y-axis .
74
+ label1 .grid (row = 1 , column = 0 , padx = 10 , pady = 10 )
75
+ label2 .grid (row = 2 , column = 0 , padx = 10 , pady = 10 )
76
+ label3 .grid (row = 3 , column = 0 , padx = 10 , pady = 10 )
77
+ label4 .grid (row = 5 , column = 0 , padx = 10 , pady = 10 )
78
+
79
+ # Create a entry box
80
+ # for filling or typing the information.
81
+ principal_field = Entry (root )
82
+ rate_field = Entry (root )
83
+ time_field = Entry (root )
84
+ compound_field = Entry (root )
85
+
86
+ # grid method is used for placing
87
+ # the widgets at respective positions
88
+ # in table like structure .
89
+
90
+ # padx keyword argument used to set padding along x-axis .
91
+ # pady keyword argument used to set padding along y-axis .
92
+ principal_field .grid (row = 1 , column = 1 , padx = 10 , pady = 10 )
93
+ rate_field .grid (row = 2 , column = 1 , padx = 10 , pady = 10 )
94
+ time_field .grid (row = 3 , column = 1 , padx = 10 , pady = 10 )
95
+ compound_field .grid (row = 5 , column = 1 , padx = 10 , pady = 10 )
96
+
97
+ # Create a Submit Button and attached
98
+ # to calculate_ci function
99
+ button1 = Button (root , text = "Submit" , bg = "red" ,
100
+ fg = "black" , command = calculate_ci )
101
+
102
+ # Create a Clear Button and attached
103
+ # to clear_all function
104
+ button2 = Button (root , text = "Clear" , bg = "red" ,
105
+ fg = "black" , command = clear_all )
106
+
107
+ button1 .grid (row = 4 , column = 1 , pady = 10 )
108
+ button2 .grid (row = 6 , column = 1 , pady = 10 )
109
+
110
+ # Start the GUI
111
+ root .mainloop ()
112
+
0 commit comments