├── README.md
├── images
├── Calculator.png
└── ErrorMsg.png
└── tkinter_calculator.py
/README.md:
--------------------------------------------------------------------------------
1 | # Python-GUI-Calculator
2 | A simple GUI Calculator using Tkinter in Python.
3 |
4 |
5 |
6 |
7 | #### How it works?
8 |
9 | >It has an entrybox that can accept input from the keyboard. Additionally, it also has some buttons which when pressed automatically inserts the corresponding character in the entrybox. After that, when the equal button is clicked, it takes the input from the entrybox and evaluates the result and displayed in entry box.
10 |
11 | >If any syntax error encountered in the entry box then a pop up message will be displayed saying that syntax error
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/images/Calculator.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SaiSwarup27/Python-GUI-Calculator/1ec366a1ec0c3b7d1eb02c11f67707804c01f093/images/Calculator.png
--------------------------------------------------------------------------------
/images/ErrorMsg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SaiSwarup27/Python-GUI-Calculator/1ec366a1ec0c3b7d1eb02c11f67707804c01f093/images/ErrorMsg.png
--------------------------------------------------------------------------------
/tkinter_calculator.py:
--------------------------------------------------------------------------------
1 | import tkinter as tk
2 | import tkinter.messagebox
3 | from tkinter.constants import SUNKEN
4 |
5 | window=tk.Tk()
6 | window.title('Claculator')
7 | frame=tk.Frame(master=window,bg="skyblue",padx=10)
8 | frame.pack()
9 | entry=tk.Entry(master=frame,relief=SUNKEN,borderwidth=3,width=30)
10 | entry.grid(row=0,column=0,columnspan=3,ipady=2,pady=2)
11 |
12 | def myclick(number):
13 | entry.insert(tk.END,number)
14 |
15 | def equal():
16 | try:
17 | y=str(eval(entry.get()))
18 | entry.delete(0,tk.END)
19 | entry.insert(0,y)
20 | except:
21 | tkinter.messagebox.showinfo("Error","Syntax Error")
22 |
23 | def clear():
24 | entry.delete(0,tk.END)
25 |
26 | button_1=tk.Button(master=frame,text='1',padx=15,pady=5,width=3,command=lambda:myclick(1))
27 | button_1.grid(row=1,column=0,pady=2)
28 | button_2=tk.Button(master=frame,text='2',padx=15,pady=5,width=3,command=lambda:myclick(2))
29 | button_2.grid(row=1,column=1,pady=2)
30 | button_3=tk.Button(master=frame,text='3',padx=15,pady=5,width=3,command=lambda:myclick(3))
31 | button_3.grid(row=1,column=2,pady=2)
32 | button_4=tk.Button(master=frame,text='4',padx=15,pady=5,width=3,command=lambda:myclick(4))
33 | button_4.grid(row=2,column=0,pady=2)
34 | button_5=tk.Button(master=frame,text='5',padx=15,pady=5,width=3,command=lambda:myclick(5))
35 | button_5.grid(row=2,column=1,pady=2)
36 | button_6=tk.Button(master=frame,text='6',padx=15,pady=5,width=3,command=lambda:myclick(6))
37 | button_6.grid(row=2,column=2,pady=2)
38 | button_7=tk.Button(master=frame,text='7',padx=15,pady=5,width=3,command=lambda:myclick(7))
39 | button_7.grid(row=3,column=0,pady=2)
40 | button_8=tk.Button(master=frame,text='8',padx=15,pady=5,width=3,command=lambda:myclick(8))
41 | button_8.grid(row=3,column=1,pady=2)
42 | button_9=tk.Button(master=frame,text='9',padx=15,pady=5,width=3,command=lambda:myclick(9))
43 | button_9.grid(row=3,column=2,pady=2)
44 | button_0=tk.Button(master=frame,text='0',padx=15,pady=5,width=3,command=lambda:myclick(0))
45 | button_0.grid(row=4,column=1,pady=2)
46 |
47 | button_add=tk.Button(master=frame,text="+",padx=15,pady=5,width=3,command=lambda:myclick('+'))
48 | button_add.grid(row=5,column=0,pady=2)
49 |
50 | button_subtract=tk.Button(master=frame,text="-",padx=15,pady=5,width=3,command=lambda:myclick('-'))
51 | button_subtract.grid(row=5,column=1,pady=2)
52 |
53 | button_multiply=tk.Button(master=frame,text="*",padx=15,pady=5,width=3,command=lambda:myclick('*'))
54 | button_multiply.grid(row=5,column=2,pady=2)
55 |
56 | button_div=tk.Button(master=frame,text="/",padx=15,pady=5,width=3,command=lambda:myclick('/'))
57 | button_div.grid(row=6,column=0,pady=2)
58 |
59 | button_clear=tk.Button(master=frame,text="clear",padx=15,pady=5,width=12,command=clear)
60 | button_clear.grid(row=6,column=1,columnspan=2,pady=2)
61 |
62 | button_equal=tk.Button(master=frame,text="=",padx=15,pady=5,width=9,command=equal)
63 | button_equal.grid(row=7,column=0,columnspan=3,pady=2)
64 |
65 | window.mainloop()
66 |
--------------------------------------------------------------------------------