from tkinter import *
# Configuração da janela principal
root = Tk()
root.geometry("700x600")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Garantia do Estado Habitação")
# Título
titulo = Label(text="Garantia do Estado Habitação",
font=("Arial", "28", "bold"), bg="#103030", fg="#49e3e3")
titulo.place(relx=0.13, rely=0.05)
# Labels dos campos de entrada
texto_sub1 = Label(text="Idade :", font=("Arial", "18", "bold"), bg="#103030", fg="#49e3e3")
texto_sub1.place(relx=0.05, rely=0.2)
texto_sub2 = Label(text="Rendimento anual :", font=("Arial", "18", "bold"), bg="#103030", fg="#49e3e3")
texto_sub2.place(relx=0.38, rely=0.2)
texto_sub3 = Label(text="Valor do Imóvel:", font=("Arial", "18", "bold"), bg="#103030", fg="#49e3e3")
texto_sub3.place(relx=0.05, rely=0.3)
texto_sub4 = Label(text="Possuir outras habitações:", font=("Arial", "18", "bold"), bg="#103030", fg="#49e3e3")
texto_sub4.place(relx=0.05, rely=0.4)
texto_sub5 = Label(text="Domicílio fiscal em Portugal:", font=("Arial", "18", "bold"), bg="#103030", fg="#49e3e3")
texto_sub5.place(relx=0.05, rely=0.5)
texto_sub6 = Label(text="Dívidas ao Fisco ou à Segurança Social:", font=("Arial", "18", "bold"), bg="#103030",
fg="#49e3e3")
texto_sub6.place(relx=0.05, rely=0.6)
# Campos de entrada
Idade = StringVar()
Idade_entrada = Entry(textvariable=Idade, font=("Arial", "12", "bold"), bg="white", fg="blue", justify='center')
Idade_entrada.place(relx=0.18, rely=0.21, relwidth=0.15)
Rendimento_anual = StringVar()
Rendimento_anual_entrada = Entry(textvariable=Rendimento_anual, font=("Arial", "12", "bold"), bg="white", fg="blue",
justify='center')
Rendimento_anual_entrada.place(relx=0.73, rely=0.21, relwidth=0.25)
valor_imovel = StringVar()
Valor_imovel_entrada = Entry(textvariable=valor_imovel, font=("Arial", "12", "bold"), bg="white", fg="blue",
justify='center')
Valor_imovel_entrada.place(relx=0.33, rely=0.31, relwidth=0.25)
# Menus suspensos (dropdowns)
var1 = StringVar()
dropDownList1 = ["Sim", "Não"]
dropdown1 = OptionMenu(root, var1, *dropDownList1)
var1.set(dropDownList1[0])
dropdown1.place(relx=0.8, rely=0.4, relwidth=0.15)
dropdown1.config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", "13", "bold"))
dropdown1["menu"].config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", "13", "bold"))
var2 = StringVar()
dropdown2 = OptionMenu(root, var2, *dropDownList1)
var2.set(dropDownList1[0])
dropdown2.place(relx=0.8, rely=0.5, relwidth=0.15)
dropdown2.config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", "13", "bold"))
dropdown2["menu"].config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", "13", "bold"))
var3 = StringVar()
dropdown3 = OptionMenu(root, var3, *dropDownList1)
var3.set(dropDownList1[0])
dropdown3.place(relx=0.8, rely=0.6, relwidth=0.15)
dropdown3.config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", "13", "bold"))
dropdown3["menu"].config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", "13", "bold"))
# Função para limpar os campos
def limpar():
Idade_entrada.delete(0, END)
Rendimento_anual_entrada.delete(0, END)
Valor_imovel_entrada.delete(0, END)
resultado_texto.config(text="")
var1.set("Sim")
var2.set("Sim")
var3.set("Sim")
# Função para calcular a elegibilidade
def app():
try:
i = int(Idade.get()) # Obtém a idade do campo de entrada
imovel = float(valor_imovel.get()) # Obtém o valor do imóvel
rendimento = float(Rendimento_anual.get()) # Obtém o rendimento anual
mensagem = "Elegível para a garantia do Estado."
valor_garantia = 0 # Valor da garantia que será calculado
# Verificações de elegibilidade
if i > 35:
mensagem = "Não é elegível: Idade superior a 35 anos."
elif rendimento > 80000:
mensagem = "Não é elegível: Rendimentos anuais superiores a 80 mil euros."
elif imovel > 450000:
mensagem = "Não é elegível: Valor do imóvel superior a 450 mil euros."
elif var1.get() == "Sim":
mensagem = "Não é elegível: Já possui habitação própria."
elif var2.get() == "Não":
mensagem = "Não é elegível: Não possui domicílio fiscal em Portugal."
elif var3.get() == "Sim":
mensagem = "Não é elegível: Possui dívidas ao Fisco ou Segurança Social."
else:
# Se elegível, calcula a garantia como 70% do valor do imóvel
valor_garantia = imovel * 0.70
mensagem = f"Elegível para a garantia do Estado. Valor da Garantia: {valor_garantia:.2f} euros"
# Exibe o resultado na interface
resultado_texto.config(text=mensagem)
except ValueError:
resultado_texto.config(text="Por favor, insira valores válidos nos campos.")
# 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.67, 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.67, 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.67, relwidth=0.25, relheight=0.1)
# Texto de resultado
resultado_texto = Label(text="", font=("Arial", 12, "bold"), bg="#cfe2f3")
resultado_texto.place(relx=0.05, rely=0.81, relwidth=0.9, relheight=0.17)
root.mainloop()