Depois de muito tempo inativo volto com um código de calculadora e controle de lanchonete feito em Python conforme videos do youtube - aqui
Segue o código:
from tkinter import*
import random
import time;
from tkinter import Entry
root = Tk()
root.geometry("1600x800+0+0")
root.title("Sistema de Administração de Restaurante")
text_Input = StringVar()
operator = ""
Tops = Frame(root, width = 1600, height = 50, bg = "powder blue", relief=SUNKEN)
Tops.pack(side=TOP)
f1 = Frame(root, width = 800, height = 700, relief=SUNKEN)
f1.pack(side=LEFT)
f2 = Frame(root, width = 300, height = 700, relief=SUNKEN)
f2.pack(side=RIGHT)
#====================================Time=========================================
localtime = time.asctime(time.localtime(time.time()))
#====================================Info=========================================
lblInfo = Label(Tops, font=('arial', 40, 'bold'), text = "Sistema de Administração de Restaurante", fg = "Steel Blue", bd = 10, anchor = 'w')
lblInfo.grid(row = 0, column = 0)
lblDateTime = Label(Tops, font=('arial', 25, 'bold'), text = localtime, fg = "Steel Blue", bd = 10, anchor = 'w')
lblDateTime.grid(row = 1, column = 0)
#==================================Calculadora====================================
def btnClick(numbers):
global operator
operator = operator + str(numbers)
text_Input.set(operator)
def btnClearDisplay():
global operator
operator=""
text_Input.set ("")
def btnEqualsInput():
global operator
sumup = str(eval(operator))
text_Input.set (sumup)
operator = ""
def Ref():
x = random.randint(10908, 500876)
randomRef = str(x)
rand.set(randomRef)
CoF = float(Fries.get())
CoD = float (Drinks.get())
CoFilet = float (Filet.get ())
CoBurger = float (Burger.get ())
CoChicBurger = float (Chicken_Burger.get ())
CoCheese_Burger = float (Cheese_Burger.get ())
CostofFries = CoF * 0.99
CostofDrinks = CoD * 1.00
CostofFilet = CoFilet * 2.99
CostofBurger = CoBurger * 2.87
CostofChicken_Burger = CoChicBurger * 2.89
CostofCheese_Burger = CoCheese_Burger * 2.69
CostofMeal = "£", str('%.2f' % (CostofFries + CostofDrinks + CostofFilet + CostofBurger
+ CostofChicken_Burger+ CostofCheese_Burger))
PayTax = ((CostofFries + CostofDrinks + CostofFilet + CostofBurger
+ CostofChicken_Burger+ CostofCheese_Burger) * 0.2)
TotalCost = (CostofFries + CostofDrinks + CostofFilet + CostofBurger
+ CostofChicken_Burger+ CostofCheese_Burger)
Ser_Charge = ((CostofFries + CostofDrinks + CostofFilet + CostofBurger
+ CostofChicken_Burger+ CostofCheese_Burger)/99)
Service = "£", str('%.2f' % Ser_Charge)
OverAllCost = "£", str('%.2f' % (PayTax + TotalCost + Ser_Charge))
PaidTax = "£", str('%.2f' % PayTax)
Service_Charge.set(Service)
Cost.set(CostofMeal)
Tax.set(PaidTax)
SubTotal.set(CostofMeal)
Total.set(OverAllCost)
def qExit():
root.destroy()
def Reset():
rand.set ("")
Fries.set ("")
Burger.set ("")
Filet.set ("")
SubTotal.set ("")
Total.set ("")
Service_Charge.set ("")
Drinks.set ("")
Tax.set ("")
Cost.set ("")
Chicken_Burger.set ("")
Cheese_Burger.set ("")
txtDisplay= Entry(f2, font=('arial', 20,'bold'), textvariable=text_Input, bd=30, bg="powder blue", insertwidth=4, justify='right')
txtDisplay.grid(columnspan=4)
btn7=Button(f2, padx=16, pady=16, bd=8, fg="black", font=('arial', 20,'bold'),
text="7", bg="powder blue", command=lambda: btnClick(7)) .grid(row=2, column=0)
btn8=Button(f2, padx=16, pady=16, bd=8, fg="black", font=('arial', 20,'bold'),
text="8", bg="powder blue", command=lambda: btnClick(8)) .grid(row=2, column=1)
btn9=Button(f2, padx=16, pady=16, bd=8, fg="black", font=('arial', 20,'bold'),
text="9", bg="powder blue", command=lambda: btnClick(9)) .grid(row=2, column=2)
Addition=Button(f2, padx=16, pady=16, bd=8, fg="black", font=('arial', 20,'bold'),
text="+", bg="powder blue", command=lambda: btnClick("+")) .grid(row=2, column=3)
#-------------------------------------------------------------------------------------------------------
btn4=Button(f2, padx=16, pady=16, bd=8, fg="black", font=('arial', 20,'bold'),
text="4", bg="powder blue", command=lambda: btnClick(4)) .grid(row=3, column=0)
btn5=Button(f2, padx=16, pady=16, bd=8, fg="black", font=('arial', 20,'bold'),
text="5", bg="powder blue", command=lambda: btnClick(5)) .grid(row=3, column=1)
btn6=Button(f2, padx=16, pady=16, bd=8, fg="black", font=('arial', 20,'bold'),
text="6", bg="powder blue", command=lambda: btnClick(6)) .grid(row=3, column=2)
Subtraction=Button(f2, padx=16, pady=16, bd=8, fg="black", font=('arial', 20,'bold'),
text="-", bg="powder blue", command=lambda: btnClick("-")) .grid(row=3, column=3)
#-------------------------------------------------------------------------------------------------------
btn1=Button(f2, padx=16, pady=16, bd=8, fg="black", font=('arial', 20,'bold'),
text="1", bg="powder blue", command=lambda: btnClick(1)) .grid(row=4, column=0)
btn2=Button(f2, padx=16, pady=16, bd=8, fg="black", font=('arial', 20,'bold'),
text="2", bg="powder blue", command=lambda: btnClick(2)) .grid(row=4, column=1)
btn3=Button(f2, padx=16, pady=16, bd=8, fg="black", font=('arial', 20,'bold'),
text="3", bg="powder blue", command=lambda: btnClick(3)) .grid(row=4, column=2)
Mutiplay=Button(f2, padx=16, pady=16, bd=8, fg="black", font=('arial', 20,'bold'),
text="*", bg="powder blue", command=lambda: btnClick("*")) .grid(row=4, column=3)
#-------------------------------------------------------------------------------------------------------
btn0=Button(f2, padx=16, pady=16, bd=8, fg="black", font=('arial', 20,'bold'),
text="0", bg="powder blue", command=lambda: btnClick(0)) .grid(row=5, column=0)
btnClear=Button(f2, padx=16, pady=16, bd=8, fg="black", font=('arial', 20,'bold'),
text="C", bg="powder blue", command= btnClearDisplay).grid(row=5, column=1)
btnEquals=Button(f2, padx=16, pady=16, bd=8, fg="black", font=('arial', 20,'bold'),
text="=", bg="powder blue", command=btnEqualsInput) .grid(row=5, column=2)
Division=Button(f2, padx=16, pady=16, bd=8, fg="black", font=('arial', 20,'bold'),
text="/", bg="powder blue", command=lambda: btnClick("/")) .grid(row=5, column=3)
#------------------------------------Restaurante Info 1-------------------------------------------------------------
rand = StringVar()
Fries = StringVar()
Burger = StringVar()
Filet = StringVar()
SubTotal = StringVar()
Total = StringVar()
Service_Charge = StringVar()
Drinks = StringVar()
Tax = StringVar()
Cost = StringVar()
Chicken_Burger = StringVar()
Cheese_Burger = StringVar()
lblReference = Label(f1, font=('arial', 16,'bold'), text = "Nº Pedido", bd=16, anchor='w')
lblReference.grid(row=0, column=0)
txtReference= Entry(f1, font=('arial', 16,'bold'), textvariable= rand, bd=10, insertwidth=4,
bg= "powder blue", justify = 'right')
txtReference.grid(row=0, column=1)
lblFries = Label(f1, font=('arial', 16,'bold'), text = "Batata Frita", bd=16, anchor='w')
lblFries.grid(row=1, column=0)
txtFries= Entry(f1, font=('arial', 16,'bold'), textvariable= Fries, bd=10, insertwidth=4,
bg= "powder blue", justify = 'right')
txtFries.grid(row=1, column=1)
lblBurger = Label(f1, font=('arial', 16,'bold'), text = "Burger Meal", bd=16, anchor='w')
lblBurger.grid(row=2, column=0)
txtBurger= Entry(f1, font=('arial', 16,'bold'), textvariable= Burger, bd=10, insertwidth=4,
bg= "powder blue", justify = 'right')
txtBurger.grid(row=2, column=1)
lblFilet = Label(f1, font=('arial', 16,'bold'), text = "Filet_o_Meal", bd=16, anchor='w')
lblFilet.grid(row=3, column=0)
txtFilet= Entry(f1, font=('arial', 16,'bold'), textvariable= Filet, bd=10, insertwidth=4,
bg= "powder blue", justify = 'right')
txtFilet.grid(row=3, column=1)
lblChicken = Label(f1, font=('arial', 16,'bold'), text = "Chicken Meal", bd=16, anchor='w')
lblChicken.grid(row=4, column=0)
txtChicken= Entry(f1, font=('arial', 16,'bold'), textvariable= Chicken_Burger, bd=10, insertwidth=4,
bg= "powder blue", justify = 'right')
txtChicken.grid(row=4, column=1)
lblCheese = Label(f1, font=('arial', 16,'bold'), text = "Cheese Meal", bd=16, anchor='w')
lblCheese.grid(row=5, column=0)
txtCheese= Entry(f1, font=('arial', 16,'bold'), textvariable= Cheese_Burger, bd=10, insertwidth=4,
bg= "powder blue", justify = 'right')
txtCheese.grid(row=5, column=1)
#------------------------------------Restaurante Info 2---------------------------------------------------------
lblDrinks = Label(f1, font=('arial', 16,'bold'), text = "Drinks", bd=16, anchor='w')
lblDrinks.grid(row=0, column=2)
txtDrinks= Entry(f1, font=('arial', 16,'bold'), textvariable= Drinks, bd=10, insertwidth=4,
bg= "#ffffff", justify = 'right')
txtDrinks.grid(row=0, column=3)
lblCost = Label(f1, font=('arial', 16,'bold'), text = "Cost of Meal", bd=16, anchor='w')
lblCost.grid(row=1, column=2)
txtCost= Entry(f1, font=('arial', 16,'bold'), textvariable= Cost, bd=10, insertwidth=4,
bg= "#ffffff", justify = 'right')
txtCost.grid(row=1, column=3)
lblService = Label(f1, font=('arial', 16,'bold'), text = "Service Charge", bd=16, anchor='w')
lblService.grid(row=2, column=2)
txtService= Entry(f1, font=('arial', 16,'bold'), textvariable= Service_Charge, bd=10, insertwidth=4,
bg= "#ffffff", justify = 'right')
txtService.grid(row=2, column=3)
lblStateTax = Label(f1, font=('arial', 16,'bold'), text = "State Tax", bd=16, anchor='w')
lblStateTax.grid(row=3, column=2)
txtStateTax= Entry(f1, font=('arial', 16,'bold'), textvariable= Tax, bd=10, insertwidth=4,
bg= "#ffffff", justify = 'right')
txtStateTax.grid(row=3, column=3)
lblSubTotal = Label(f1, font=('arial', 16,'bold'), text = "Sub Total", bd=16, anchor='w')
lblSubTotal.grid(row=4, column=2)
txtSubTotal= Entry(f1, font=('arial', 16,'bold'), textvariable= SubTotal, bd=10, insertwidth=4,
bg= "#ffffff", justify = 'right')
txtSubTotal.grid(row=4, column=3)
lblTotalCost = Label(f1, font=('arial', 16,'bold'), text = "Total Cost", bd=16, anchor='w')
lblTotalCost.grid(row=5, column=2)
txtTotalCost= Entry(f1, font=('arial', 16,'bold'), textvariable= Total, bd=10, insertwidth=4,
bg= "#ffffff", justify = 'right')
txtTotalCost.grid(row=5, column=3)
#===========================================Buttons===================================================
btnTotal = Button(f1, padx=16, pady = 8, bd = 16, fg = "black", font=('arial', 16,'bold'), width = 10,
text = "Total", bg = "powder blue", command = Ref).grid(row = 7, column = 1)
btnReset = Button(f1, padx=16, pady = 8, bd = 16, fg = "black", font=('arial', 16,'bold'), width = 10,
text = "Reset", bg = "powder blue", command = Reset).grid(row = 7, column = 2)
btnExit = Button(f1, padx=16, pady = 8, bd = 16, fg = "black", font=('arial', 16,'bold'), width = 10,
text = "Exit", bg = "powder blue", command = qExit).grid(row = 7, column = 3)
root.mainloop()