Welcome folks today in this post we will be showing you how to make a simple calculator in tkinter
. This will be made using a library called as tkinter
which is a gui library of python. All the source code of application will be given below.
Get Started
You need to be having python installed on your system
And then you need to install tkinter
inside your project
pip install tkinter
Now make a app.py
file and copy paste the following code
app.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
import tkinter as tk calc = tk.Tk() calc.title("CrappyCalc") buttons = [ '7', '8', '9', '*', 'C', '4', '5', '6', '/', 'Neg', '1', '2', '3', '-', '$', '0', '.', '=', '+', '@' ] # set up GUI row = 1 col = 0 for i in buttons: button_style = 'raised' action = lambda x = i: click_event(x) tk.Button(calc, text = i, width = 7, height = 7, relief = button_style, command = action) \ .grid(row = row, column = col, sticky = 'nesw', ) col += 1 if col > 4: col = 0 row += 1 display = tk.Entry(calc, width = 40, bg = "white") display.grid(row = 0, column = 0, columnspan = 5) def click_event(key): # = -> calculate results if key == '=': # safeguard against integer division if '/' in display.get() and '.' not in display.get(): display.insert(tk.END, ".0") # attempt to evaluate results try: result = eval(display.get()) display.insert(tk.END, " = " + str(result)) except: display.insert(tk.END, " Error, use only valid chars") # C -> clear display elif key == 'C': display.delete(0, tk.END) # $ -> clear display elif key == '$': display.delete(0, tk.END) display.insert(tk.END, "$$$$C.$R.$E.$A.$M.$$$$") # @ -> clear display elif key == '@': display.delete(0, tk.END) display.insert(tk.END, "wwwwwwwwwwwwwwwwebsite") # neg -> negate term elif key == 'neg': if '=' in display.get(): display.delete(0, tk.END) try: if display.get()[0] == '-': display.delete(0) else: display.insert(0, '-') except IndexError: pass # clear display and start new input else: if '=' in display.get(): display.delete(0, tk.END) display.insert(tk.END, key) # RUNTIME calc.mainloop() |
Screenshot