from tkinter import *
root = Tk()
root.geometry("600x500")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Fase da vida de um cão")
titulo = Label(text="Fase da vida de um cão",
font=("Arial", 28, "bold"), bg="#103030", fg="#49e3e3")
titulo.place(relx=0.15, rely=0.05)
texto_sub1 = Label(text="Idade:",
font=("Arial", 20, "bold"), bg="#103030", fg="#49e3e3")
texto_sub1.place(relx=0.05, rely=0.32)
texto_sub2 = Label(text="Tamanho do cão:",
font=("Arial", 20, "bold"), bg="#103030", fg="#49e3e3")
texto_sub2.place(relx=0.05, rely=0.5)
Idade = StringVar()
Idade_entrada = Entry(textvariable=Idade,
font=("Arial", 12, "bold"),
bg="white", fg="blue", justify='center')
Idade_entrada.place(relx=0.25, rely=0.33, relwidth=0.25)
var1 = StringVar()
dropDownList1 = ["Meses", "Anos"]
dropdown1 = OptionMenu(root, var1, *dropDownList1)
var1.set(dropDownList1[0])
dropdown1.place(relx=0.55, rely=0.33, relwidth=0.4)
dropdown1.config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", 18, "bold"))
dropdown1["menu"].config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", 18, "bold"))
var2 = StringVar()
dropDownList2 = ["Pequeno", "Médio", "Grande"]
dropdown2 = OptionMenu(root, var2, *dropDownList2)
var2.set(dropDownList2[0])
dropdown2.place(relx=0.55, rely=0.52, relwidth=0.4)
dropdown2.config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", 18, "bold"))
dropdown2["menu"].config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", 18, "bold"))
def limpar():
Idade_entrada.delete(0, END)
resultado_texto.config(text="")
def app():
try:
idade_valor = float(Idade.get())
unidade = var1.get()
tamanho = var2.get()
if unidade == "Meses":
if idade_valor < 1 or idade_valor > 12:
resultado_texto.config(text="Erro: Só pode colocar entre 1 e 12 meses.")
return
idade_anos = idade_valor / 12
else:
if idade_valor <= 0:
resultado_texto.config(text="Erro: Introduza uma idade válida (maior que zero).")
return
idade_anos = idade_valor
if tamanho == "Pequeno":
if idade_anos < 1:
fase = "Filhote"
elif idade_anos < 3:
fase = "Adolescente"
elif idade_anos < 9:
fase = "Adulto"
else:
fase = "Idoso"
elif tamanho == "Médio":
if idade_anos < 1:
fase = "Filhote"
elif idade_anos < 2.5:
fase = "Adolescente"
elif idade_anos < 8:
fase = "Adulto"
else:
fase = "Idoso"
elif tamanho == "Grande":
if idade_anos < 1:
fase = "Filhote"
elif idade_anos < 2:
fase = "Adolescente"
elif idade_anos < 6:
fase = "Adulto"
else:
fase = "Idoso"
resultado_texto.config(
text=f"O cão é da fase: {fase}\nTamanho: {tamanho}\nIdade: {idade_valor} {unidade.lower()}"
)
except ValueError:
resultado_texto.config(text="Por favor, insira um número válido para a idade.")
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=root.destroy)
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", justify="center")
resultado_texto.place(relx=0.05, rely=0.8, relwidth=0.9, relheight=0.15)
root.mainloop()