from tkinter import *
from tkinter import messagebox
root = Tk()
root.geometry("600x400")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Tempo de encher um Tanque")
titulo = Label(text="Tempo de encher um Tanque",
font=("Arial", "28", "bold"), bg="#103030", fg="#49e3e3")
titulo.place(relx=0.05, rely=0.05)
texto_sub1 = Label(text="Volume (litros) :", font=("Arial", "18", "bold"),
bg="#103030", fg="#49e3e3")
texto_sub1.place(relx=0.2, rely=0.32)
texto_sub2 = Label(text="Fluxo (por minuto) :", font=("Arial", "18", "bold"),
bg="#103030", fg="#49e3e3")
texto_sub2.place(relx=0.12, rely=0.53)
Volume = StringVar()
Volume_entrada = Entry(textvariable=Volume, font=("Arial", "12", "bold"),
bg="white", fg="blue", justify='center')
Volume_entrada.place(relx=0.55, rely=0.33, relwidth=0.35)
Volume_entrada.focus()
Fluxo = StringVar()
Fluxo_entrada = Entry(textvariable=Fluxo, font=("Arial", "12", "bold"),
bg="white", fg="blue", justify='center')
Fluxo_entrada.place(relx=0.55, rely=0.54, relwidth=0.35)
def limpar():
"""Limpa os campos de entrada e o resultado."""
Fluxo_entrada.delete(0, END)
Volume_entrada.delete(0, END)
resultado_texto.config(text="")
def app(event=None):
"""Calcula o tempo para encher o tanque e exibe o resultado."""
try:
volume_total = float(Volume.get())
fluxo = float(Fluxo.get())
# Tempo = Volume / Fluxo
if volume_total <= 0 or fluxo <= 0:
resultado_texto.config(text="Valores devem ser maiores que zero!")
else:
tempo = volume_total / fluxo
horas = int(tempo // 60)
minutos = round(tempo % 60, 2)
if horas > 0:
resultado_texto.config(text=f"Tempo: {horas}h {minutos}min")
else:
resultado_texto.config(text=f"Tempo: {minutos} min")
except ValueError:
resultado_texto.config(text="Valor digitado inválido!")
def sair():
"""Fecha o programa com uma confirmação."""
if messagebox.askokcancel("Sair", "Deseja realmente sair?"):
root.destroy()
but1 = Button(text="Calcular", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=app)
but1.place(relx=0.1, rely=0.65, 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.65, relwidth=0.25, relheight=0.1)
but_sair = Button(text="Sair", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=sair)
but_sair.place(relx=0.7, rely=0.65, 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.bind('<Return>', app)
root.mainloop()