Mundo em Python

Dias sem IVA

from tkinter import *
root = Tk()
root.geometry("500x400")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Dias sem IVA")
titulo = Label(
text="Dias sem IVA",
font=("Arial", 28, "bold"),
bg="#103030",
fg="#49e3e3"
)
titulo.place(relx=0.2, rely=0.05)
texto_sub1 = Label(
text="Preço da Loja:",
font=("Arial", 18, "bold"),
bg="#103030",
fg="#49e3e3"
)
texto_sub1.place(relx=0.05, rely=0.25) # Entrada do preço
Preço_Loja = StringVar()
Preço_Loja_entrada = Entry(
textvariable=Preço_Loja,
font=("Arial", 12, "bold"),
bg="white",
fg="blue",
justify='center'
)
Preço_Loja_entrada.place(relx=0.45, rely=0.26, relwidth=0.45)
Preço_Loja_entrada.focus()
var = StringVar()
dropDownList = ["6%", "13%", "23%"]
var.set(dropDownList[0]) dropdown = OptionMenu(root, var, *dropDownList)
dropdown.place(relx=0.45, rely=0.35, relwidth=0.25)
dropdown.config(background='#09A3BA', foreground="#FFFFFF",font=('verdana', 15, 'bold'))
dropdown["menu"].config(background='#09A3BA', foreground="#FFFFFF") resultado_texto = Label(
text="",
font=("Arial", 12, "bold"),
bg="#cfe2f3"
)
resultado_texto.place(relx=0.05, rely=0.75, relwidth=0.9, relheight=0.2) # Função para calcular preço sem IVA
def app(_=None): # _ recebe o evento do Enter
try:
Preço_Loja_com_iva = float(Preço_Loja.get())
iva_map = {"6%": 0.06, "13%": 0.13, "23%": 0.23}
iva = iva_map.get(var.get(), 0.23)
Preço_sem_IVA = Preço_Loja_com_iva / (1 + iva)
Poupança = Preço_Loja_com_iva - Preço_sem_IVA mensagem = f"Preço Total: {round(Preço_sem_IVA,2)}\nPoupança: {round(Poupança,2)} €"
resultado_texto.config(text=mensagem)
except ValueError:
resultado_texto.config(text="Por favor, insira valores numéricos válidos") def limpar():
Preço_Loja_entrada.delete(0, END)
resultado_texto.config(text="") but1 = Button(
text="Calcular",
bd=2,
bg='#107db2',
fg='white',
font=('verdana', 12, 'bold'),
command=app
)
but1.place(relx=0.1, rely=0.55, relwidth=0.25, relheight=0.15) 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.55, relwidth=0.25, relheight=0.15) 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.55, relwidth=0.25, relheight=0.15)
root.bind('<Return>', app)
root.mainloop()
0