Friday, August 7, 2020

Simple GUI Calculator using Tkinter in Python.

 GUI Calculator using Tkinter in Python.


Simple GUI Calculator using Tkinter in Python. In this tutorial, we are going to create a simple GUI calculator using the Tkinter module. Tkinter is builtin the Python module for developing the GUI application.which can perform basic arithmatic operations addition, subtraction, multiplication and division.


EXAMPLE :-

import tkinter
from tkinter import *
from tkinter import messagebox


root = tkinter.Tk()
root.geometry("450x500+200+200")
root.resizable(0,0)
root.title("My Calculator")

val = ""
A = 1
operator = ""


def entered(event):
btnc.config(bg="#ff4117")

def left(event):
btnc.config(bg="#fc876d")

def entered_(event):
btnx.config(bg="#ffd500")

def left_(event):
btnx.config(bg="#faed5f")




def btn_1_isclicked():
global val
val = val + "1"
data.set(val)

def btn_2_isclicked():
global val
val = val + "2"
data.set(val)

def btn_3_isclicked():
global val
val = val + "3"
data.set(val)

def btn_4_isclicked():
global val
val = val + "4"
data.set(val)

def btn_5_isclicked():
global val
val = val + "5"
data.set(val)

def btn_6_isclicked():
global val
val = val + "6"
data.set(val)

def btn_7_isclicked():
global val
val = val + "7"
data.set(val)

def btn_8_isclicked():
global val
val = val + "8"
data.set(val)

def btn_9_isclicked():
global val
val = val + "9"
data.set(val)

def btn_0_isclicked():
global val
val = val + "0"
data.set(val)

def btn_dot_isclicked():
global val
val = val + "."
data.set(val)


def btn_plus_clicked():
global A
global operator,val
A = float(val)
operator = "+"
val = val + "+"
data.set(val)

def btn_minus_clicked():
global A
global operator,val
A = float(val)
operator = "-"
val = val + "-"
data.set(val)

def btn_mult_clicked():
global A
global operator,val
A = float(val)
operator = "*"
val = val + "*"
data.set(val)

def btn_div_clicked():
global A
global operator,val
A = float(val)
operator = "/"
val = val + "/"
data.set(val)


def btn_exp_clicked():
global A
global operator,val
A = float(val)
operator = "^"
val = val + "^"
data.set(val)


def btn_c_pressed():
global A,operator,val
val = ""
A = 0
operator = ""
data.set(val)

def btn_x_pressed():
global A,operator,val
v = val[-1]
val = val[:len(val)-1]
if v in ['+','-','*','/']:
operator=""
operator = ""
data.set(val)


def result():
global A,operator,val
val2 = val
if operator == "+":
x = float((val2.split("+")[1]))
C = A + x
val = str(C)
data.set(val)
elif operator == "-":
x = float((val2.split("-")[1]))
C = A - x
val = str(C)
data.set(val)
elif operator == "*":
x = float((val2.split("*")[1]))
C = A * x
val = str(C)
data.set(val)
elif operator == "/":
x = float((val2.split("/")[1]))
if x == 0:
messagebox.showerror("Error", "Division By 0 Not Supported")
A = ""
val = ""
data.set(val)
else:
C = A / x
data.set(C)
elif operator == "^":
x = float((val2.split("^")[1]))
C = A ** x
val = str(C)
data.set(val)
else:
#print(1)
if '+' in val2 or '-' in val2 or '*' in val2 or '/' in val2 or '^' in val2:
return
#print(2)
x=float(val2)
C = x * x
val = str(C)
data.set(val)

data = StringVar()
lbl = Label(
root,
text = "Label",
anchor = SE,
font = ("Lucida", 20),
textvariable = data,
background = "#ffffff",
fg = "#000000",
)
lbl.pack(expand = True, fill = "both")


btnrow0 = Frame(root)
btnrow0.pack(expand = True, fill = "both")

btnrow1 = Frame(root)
btnrow1.pack(expand = True, fill = "both")

btnrow2 = Frame(root)
btnrow2.pack(expand = True, fill = "both")

btnrow3 = Frame(root)
btnrow3.pack(expand = True, fill = "both")

btnrow4 = Frame(root)
btnrow4.pack(expand = True, fill = "both")


btnc = Button(
btnrow0,
text = "C",
font = ("Lucida", 22),
bg = "#55B5F0",
relief = GROOVE,
border = 0,
command = btn_c_pressed,
)
btnc.pack(side = LEFT, expand = True, fill = "both",)
btnc.bind("<Enter>",entered)
btnc.bind("<Leave>", left)


btnx = Button(
btnrow0,
text = "Del",
font = ("Lucida", 22),
bg="#faed5f",
relief = GROOVE,
border = 0,
command = btn_x_pressed,
)
btnx.pack(side = LEFT, expand = True, fill = "both",)
btnx.bind("<Enter>",entered_)
btnx.bind("<Leave>", left_)

btnpower = Button(
btnrow0,
text = "exp",
font = ("Lucida", 22),
bg = "#6361D3",
relief = GROOVE,
border = 0,
command = btn_exp_clicked,
)
btnpower.pack(side = LEFT, expand = True, fill = "both",)

btnsq = Button(
btnrow0,
text = "sq",
font = ("Lucida", 22),
bg="#12D561",
relief = GROOVE,
border = 0,
command = result,
)
btnsq.pack(side = LEFT, expand = True, fill = "both",)


btn1 = Button(
btnrow1,
text = "1",
font = ("Lucida", 22),
bg = "#CFD92D",
relief = GROOVE,
border = 0,
command = btn_1_isclicked,
)
btn1.pack(side = LEFT, expand = True, fill = "both",)

btn2 = Button(
btnrow1,
text = "2",
font = ("Lucida", 22),
bg = "#CFD92D",
relief = GROOVE,
border = 0,
command = btn_2_isclicked,
)
btn2.pack(side = LEFT, expand = True, fill = "both",)

btn3 = Button(
btnrow1,
text = "3",
font = ("Lucida", 22),
bg="#CFD92D",
relief = GROOVE,
border = 0,
command = btn_3_isclicked,
)
btn3.pack(side = LEFT, expand = True, fill = "both",)

btnplus = Button(
btnrow1,
text = "+",
font = ("Lucida", 22),
bg="#b9ebfa",
relief = GROOVE,
border = 0,
command = btn_plus_clicked,
)
btnplus.pack(side = LEFT, expand = True, fill = "both",)


btn4 = Button(
btnrow2,
text = "4",
font = ("Lucida", 22),
bg="#CFD92D",
relief = GROOVE,
border = 0,
command = btn_4_isclicked,
)
btn4.pack(side = LEFT, expand = True, fill = "both",)

btn5 = Button(
btnrow2,
text = "5",
font = ("Lucida", 22),
bg="#CFD92D",
relief = GROOVE,
border = 0,
command = btn_5_isclicked,
)
btn5.pack(side = LEFT, expand = True, fill = "both",)

btn6 = Button(
btnrow2,
text = "6",
font = ("Lucida", 22),
bg="#CFD92D",
relief = GROOVE,
border = 0,
command = btn_6_isclicked,
)
btn6.pack(side = LEFT, expand = True, fill = "both",)

btnminus = Button(
btnrow2,
text = "-",
font = ("Lucida", 22),
bg="#b9ebfa",
relief = GROOVE,
border = 0,
command = btn_minus_clicked,
)
btnminus.pack(side = LEFT, expand = True, fill = "both",)



btn7 = Button(
btnrow3,
text = "7",
font = ("Lucida", 22),
bg="#CFD92D",
relief = GROOVE,
border = 0,
command = btn_7_isclicked,
)
btn7.pack(side = LEFT, expand = True, fill = "both",)

btn8 = Button(
btnrow3,
text = "8",
font = ("Lucida", 22),
bg="#CFD92D",
relief = GROOVE,
border = 0,
command = btn_8_isclicked,
)
btn8.pack(side = LEFT, expand = True, fill = "both",)

btn9 = Button(
btnrow3,
text = "9",
font = ("Lucida", 22),
bg="#CFD92D",
relief = GROOVE,
border = 0,
command = btn_9_isclicked,
)
btn9.pack(side = LEFT, expand = True, fill = "both",)

btnmult = Button(
btnrow3,
text = "*",
font = ("Lucida", 22),
bg="#b9ebfa",
relief = GROOVE,
border = 0,
command = btn_mult_clicked,
)
btnmult.pack(side = LEFT, expand = True, fill = "both",)

btndot = Button(
btnrow4,
text = ".",
font = ("Lucida", 22),
bg="#b9ebfa",
relief = GROOVE,
border = 0,
command = btn_dot_isclicked,
)
btndot.pack(side = LEFT, expand = True, fill = "both",)


btn0 = Button(
btnrow4,
text = "0",
font = ("Lucida", 22),
bg="#b9ebfa",
relief = GROOVE,
border = 0,
command = btn_0_isclicked,
)
btn0.pack(side = LEFT, expand = True, fill = "both",)

btnequal = Button(
btnrow4,
text = "=",
font = ("Lucida", 22),
bg="#b9ebfa",
relief = GROOVE,
border = 0,
command = result,
)
btnequal.pack(side = LEFT, expand = True, fill = "both",)

btndiv = Button(
btnrow4,
text = "/",
font = ("Lucida", 22),
bg="#b9ebfa",
relief = GROOVE,
border = 0,
command = btn_div_clicked,
)
btndiv.pack(side = LEFT, expand = True, fill = "both",)

root.mainloop()

#********************CREATE BY CODING BLOCKS************#


OUTPUT

GUI Calculator using Tkinter in Python.
GUI Calculator



No comments:

Post a Comment

Please do not any spam link in Comment Box