Aplicação de compatibilidade

from tkinter import *
from datetime import datetime

root = Tk()
root.geometry("700x500")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Aplicação de compatibilidade")

descricoes_almas = {
1: 'Alma 1 – Esta é a alma livre, deseja se emancipar e vencer na vida.\n'
'Mas, ela é a mais apaixonada entre todas as almas.\n'
'Também, possui um gosto refinado, ou seja, é aquela velha figura de diretor.',
2: 'Alma 2 – Esta é a alma mais calma, apaziguada, paz e amor.\n'
'Aquela que deseja que tudo termine bem.\n'
'Ela consegue ouvir os dois lados, é amável e conselheira.\n'
'É a figura do diplomata!',
3: 'Alma 3 – Alegria é seu forte, nunca deixa ninguém triste,\n'
'sempre dá apoio a todas as pessoas e todos o amam.\n'
'Pois, sua alegria contagia! Mas, ele acaba confiando em todos.',
4: 'Alma 4 – É aquela pessoa que gosta de fazer tudo sozinho,\n'
'ela ama trabalhar, mas é do jeito dela! É muito estável e organizada,\n'
'além de ser prática. Pode ser arrogante para uns, todavia é o jeito dela.',
5: 'Alma 5 – Ama viajar, se aventurar, não tem medo de viver!\n'
'É livre, animada, inspiradora. Ela é adaptável, coloque-a\n'
'em qualquer situação que conseguirá se adaptar!',
6: 'Alma 6 – Esta é a famosa “mãe galinha”.\n'
'Protege sua família por tudo, ama seus amigos mais que tudo.\n'
'É uma excelente cuidadora de pessoas, sente-se feliz por isso!\n'
'Ou seja, é mais responsável!',
7: 'Alma 7 – Analisa tudo, cada detalhe, emoção, gesto, palavra.\n'
'Não deixa nada escapar, nem mesmo aquela pluma que voou e caiu\n'
'sobre a cabeça de quem ela ama.\n'
'Ou seja, é racional, crítica e gosta da sua solidão.',
8: 'Alma 8 – Se ela quer ter a maior empresa do mundo, ela terá.\n'
'Pois não desistirá, sendo que, sua vida será toda para aquilo,\n'
'se precisar! Mais que determinada, ambiciosa e gosta de demonstrar\n'
'o que tem. Mas, será severa se você não for autêntico!',
9: 'Alma 9 – Esta é a alma mais amável de todas, ela é aquele psicólogo\n'
'que sempre te ajudará. Ela pouco falará, mas escutará tudo o que você\n'
'tem a dizer. Extremamente generosa, irá entender até as almas mais complexas.\n'
'Paciente e inesquecível!',
}

titulo = Label(text="Aplicação de compatibilidade",
font=("Arial", "30", "bold"), bg="#103030", fg="#49e3e3")
titulo.place(relx=0.1, rely=0.05)

texto_sub1 = Label(text="Data de Nascimento 1 (DD/MM/AAAA):",
font=("Arial", "16", "bold"), bg="#103030", fg="#49e3e3")
texto_sub1.place(relx=0.05, rely=0.25)

texto_sub2 = Label(text="Data de Nascimento 2 (DD/MM/AAAA):",
font=("Arial", "16", "bold"), bg="#103030", fg="#49e3e3")
texto_sub2.place(relx=0.05, rely=0.35)

Data_Nascimento1 = StringVar()
Data_Nascimento1_entrada = Entry(textvariable=Data_Nascimento1,
font=("Arial", "12", "bold"),
bg="white", fg="blue", justify='center')
Data_Nascimento1_entrada.place(relx=0.65, rely=0.26, relwidth=0.3)
Data_Nascimento1_entrada.focus()

Data_Nascimento2 = StringVar()
Data_Nascimento2_entrada = Entry(textvariable=Data_Nascimento2,
font=("Arial", "12", "bold"),
bg="white", fg="blue", justify='center')
Data_Nascimento2_entrada.place(relx=0.65, rely=0.36, relwidth=0.3)

def limpar():
Data_Nascimento1_entrada.delete(0, END)
Data_Nascimento2_entrada.delete(0, END)
resultado_texto.config(state=NORMAL)
resultado_texto.delete(1.0, END)
resultado_texto.config(state=DISABLED)

def calcular_numero_vida(data):
numeros = [int(digito) for digito in data if digito.isdigit()]
soma = sum(numeros)
while soma > 9:
soma = sum(int(digito) for digito in str(soma))
return soma

def app():
data1 = Data_Nascimento1.get()
data2 = Data_Nascimento2.get()

try:
datetime.strptime(data1, '%d/%m/%Y')
datetime.strptime(data2, '%d/%m/%Y')
except ValueError:
resultado_texto.config(state=NORMAL)
resultado_texto.delete(1.0, END)
resultado_texto.insert(END, "Erro de digitação. Por favor, use o formato DD/MM/AAAA.")
resultado_texto.config(state=DISABLED)
return

numero1 = calcular_numero_vida(data1)
numero2 = calcular_numero_vida(data2)

resultado_texto_str = f"Número do Caminho de Vida 1: {numero1}\n"
resultado_texto_str += f"Número do Caminho de Vida 2: {numero2}\n\n"

if numero1 == numero2:
compatibilidade = "Muito Alta: Vocês são almas gêmeas!"
elif abs(numero1 - numero2) == 1:
compatibilidade = "Alta: Há uma forte conexão entre vocês."
else:
compatibilidade = "Moderada: Pode haver desafios, mas também potencial para crescimento."

resultado_texto_str += f"Compatibilidade: {compatibilidade}\n\n"
resultado_texto_str += f"Descrição Alma 1: {descricoes_almas[numero1]}\n\n"
resultado_texto_str += f"Descrição Alma 2: {descricoes_almas[numero2]}"

resultado_texto.config(state=NORMAL)
resultado_texto.delete(1.0, END)
resultado_texto.insert(END, resultado_texto_str)
resultado_texto.config(state=DISABLED)

but1 = Button(text="Mostrar", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=app)
but1.place(relx=0.1, rely=0.45, relwidth=0.25, relheight=0.05)

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.45, relwidth=0.25, relheight=0.05)

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.45, relwidth=0.25, relheight=0.05)

resultado_texto_frame = Frame(root, bg="#cfe2f3")
resultado_texto_frame.place(relx=0.05, rely=0.55, relwidth=0.9, relheight=0.43)

scrollbar = Scrollbar(resultado_texto_frame)
scrollbar.pack(side=RIGHT, fill=Y)

resultado_texto = Text(resultado_texto_frame, wrap=WORD, yscrollcommand=scrollbar.set,
font=("Arial", 12, "bold"), bg="#cfe2f3")
resultado_texto.pack(side=LEFT, fill=BOTH, expand=True)
resultado_texto.config(state=DISABLED)

scrollbar.config(command=resultado_texto.yview)

root.mainloop()

Comentários

Mensagens populares deste blogue

Criar Cartões de Visita

12 signos egípcios

Calcular a percentagem de ocupação