Mundo em Python

Pastelaria no Continente

from tkinter import *

produtos = {
"100": {"nome": "Pastel de Nata", "preco": 1.20},
"101": {"nome": "Croissant", "preco": 1.00},
"102": {"nome": "Bola de Berlim", "preco": 1.50},
"103": {"nome": "Pão de Deus", "preco": 1.30},
"104": {"nome": "Queque", "preco": 0.90},

"105": {"nome": "Mil-Folhas", "preco": 1.80},
"106": {"nome": "Tarte de Maçã", "preco": 2.00},
"107": {"nome": "Palmier", "preco": 1.40},
"108": {"nome": "Donnut", "preco": 1.20},
"109": {"nome": "Empada de Frango", "preco": 1.90},

"110": {"nome": "Empada de Atum", "preco": 1.90},
"111": {"nome": "Rissol de Camarão", "preco": 1.50},
"112": {"nome": "Rissol de Carne", "preco": 1.40},
"113": {"nome": "Bolo de Arroz", "preco": 1.10},
"114": {"nome": "Trança de Chocolate", "preco": 1.60},

"115": {"nome": "Tartelette de Morango", "preco": 2.20},
"116": {"nome": "Baba de Camelo (copo)", "preco": 1.70},
"117": {"nome": "Muffin de Chocolate", "preco": 1.50},
"118": {"nome": "Napolitana de Chocolate", "preco": 1.40},
"119": {"nome": "Pastel de Feijão", "preco": 1.60},

"120": {"nome": "Caracol de Canela", "preco": 1.20},
"121": {"nome": "Pão de Ló (fatia)", "preco": 1.30},
"122": {"nome": "Folhado de Salsicha", "preco": 1.70},
"123": {"nome": "Tarte de Amêndoa", "preco": 2.30},
"124": {"nome": "Bolo Brigadeiro (fatia)", "preco": 2.50},
}
# ------------------------------------------
# JANELA FINAL (Resultado da Compra)
# ------------------------------------------
def abrir_resultado(cod, qtd):
nome = produtos[cod]["nome"]
preco = produtos[cod]["preco"]
total = preco * qtd janela_final = Toplevel(root)
janela_final.title("Resumo da Compra")
janela_final.geometry("350x250") Label(janela_final, text="Resumo da Compra",
font=("Arial", 16, "bold")).pack(pady=10) Label(janela_final, text=f"Produto: {nome}",
font=("Arial", 12)).pack(pady=5) Label(janela_final, text=f"Preço unitário: €{preco:.2f}",
font=("Arial", 12)).pack(pady=5) Label(janela_final, text=f"Quantidade: {qtd}",
font=("Arial", 12)).pack(pady=5) Label(janela_final, text=f"Total: €{total:.2f}",
font=("Arial", 13, "bold"), fg="green").pack(pady=10) Button(janela_final, text="Fechar", bg="#107db2",
fg="white", font=("Arial", 12, "bold"),
command=janela_final.destroy).pack(pady=10)
def janela_quantidade(cod): janela_quant = Toplevel(root)
janela_quant.title("Quantidade")
janela_quant.geometry("300x200") Label(janela_quant, text=f"Produto: {produtos[cod]['nome']}",
font=("Arial", 12, "bold")).pack(pady=10) Label(janela_quant, text="Digite a quantidade:",
font=("Arial", 12)).pack() qtd_var = StringVar()
Entry(janela_quant, textvariable=qtd_var,
font=("Arial", 12), justify="center").pack(pady=5) def confirmar_quantidade():
try:
qtd = int(qtd_var.get())
if qtd < 1:
raise ValueError
except:
Label(janela_quant, text="Quantidade inválida!",
fg="red", font=("Arial", 10, "bold")).pack()
return

janela_quant.destroy()
abrir_resultado(cod, qtd) Button(janela_quant, text="Confirmar", font=("Arial", 12, "bold"),
bg="#107db2", fg="white", command=confirmar_quantidade).pack(pady=15) def limpar():
Código_entrada.delete(0, END)
resultado_texto.config(text="")
def app():
cod = Código_entrada.get().strip() if cod == "":
resultado_texto.config(text="Por favor, insira um código.")
return

if cod not in produtos:
resultado_texto.config(text="Código não encontrado.")
return

janela_quantidade(cod) root = Tk()
root.geometry("700x400")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Pastelaria no Continente") titulo = Label(
text="Pastelaria no Continente", font=("Arial", 28, "bold"),
bg="#103030", fg="#49e3e3"
)
titulo.place(relx=0.25, rely=0.05) texto_sub1 = Label(
text="Digite o Código:", font=("Arial", 18, "bold"),
bg="#103030", fg="#49e3e3"
)
texto_sub1.place(relx=0.2, rely=0.32) Código = StringVar()
Código_entrada = Entry(
textvariable=Código, font=("Arial", 12, "bold"),
bg="white", fg="blue", justify='center'
)
Código_entrada.place(relx=0.55, rely=0.33, relwidth=0.35)
Código_entrada.focus() but1 = Button(
text="OK", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=app
)
but1.place(relx=0.1, rely=0.5, relwidth=0.25, relheight=0.1) but_limpar = Button(
text="Limpar", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=limpar
)
but_limpar.place(relx=0.4, rely=0.5, relwidth=0.25, relheight=0.1) but_sair = Button(
text="Sair", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=root.destroy
)
but_sair.place(relx=0.7, rely=0.5, relwidth=0.25, relheight=0.1) resultado_texto = Label(
text="", font=("Arial", 12, "bold"),
bg="#cfe2f3"
)
resultado_texto.place(relx=0.05, rely=0.8, relwidth=0.9, relheight=0.15) root.mainloop()
0