from tkinter import *
root = Tk()
root.geometry("650x400")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Calcular o Preço por grama")
# Título
titulo = Label(
text="Calcular o Preço por grama",
font=("Arial", "28", "bold"),
bg="#103030",
fg="#49e3e3",
)
titulo.place(relx=0.15, rely=0.05)
# Label para o preço por grama
texto_sub1 = Label(
text="Preço por km:",
font=("Arial", "25", "bold"),
bg="#103030",
fg="#49e3e3",
)
texto_sub1.place(relx=0.2, rely=0.24)
texto_sub2 = Label(
text="Quantidade em gramas:",
font=("Arial", "25", "bold"),
bg="#103030",
fg="#49e3e3",
)
texto_sub2.place(relx=0.05, rely=0.45)
# Entrada para o preço por kg
Preço_km = StringVar()
Preço_km_entrada = Entry(
textvariable=Preço_km,
font=("Arial", "12", "bold"),
bg="white",
fg="blue",
justify="center",
)
Preço_km_entrada.place(relx=0.65, rely=0.25, relwidth=0.25)
Preço_km_entrada.focus()
# Entrada para a quantidade em gramas
Quantidade_gramas = StringVar()
Quantidade_gramas_entrada = Entry(
textvariable=Quantidade_gramas, # Associando à variável correta
font=("Arial", "12", "bold"),
bg="white",
fg="blue",
justify="center",
)
Quantidade_gramas_entrada.place(relx=0.65, rely=0.46, relwidth=0.25)
def limpar():
Preço_km_entrada.delete(0, END)
Quantidade_gramas_entrada.delete(0, END)
resultado_texto.config(text="")
def app():
try:
# Obtendo valores das entradas
quantidade_grama = float(Quantidade_gramas.get())
preço_km = float(Preço_km.get())
# Calculando o preço
preço_por_x_gramas = (preço_km * quantidade_grama) / 1000
# Exibindo o resultado
resultado_texto.config(
text=f"Preço por {quantidade_grama} g: € {preço_por_x_gramas:.2f}"
)
except ValueError:
resultado_texto.config(text="Valor digitado de forma inválida!")
# Botões
but1 = Button(
text="Calcular",
bd=2,
bg="#107db2",
fg="white",
font=("verdana", 12, "bold"),
command=app,
)
but1.place(relx=0.1, rely=0.6, 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.6, 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.6, relwidth=0.25, relheight=0.1)
# Resultado
resultado_texto = Label(
text="",
font=("Arial", 12, "bold"),
bg="#cfe2f3",
anchor="center",
)
resultado_texto.place(relx=0.05, rely=0.8, relwidth=0.9, relheight=0.15)
# Início da aplicação
root.mainloop()