Mundo em Python

Signos Chineses

from tkinter import *

# Dicionário de signos chineses
signos_chineses = {
"Rato": {
"Madeira": "Ambicioso, sociável, procura crescimento e conhecimento.",
"Fogo": "Energético, corajoso, impulsivo, gosta de desafios.",
"Terra": "Prático, confiável, paciente, bom planeador.",
"Metal": "Determinado, disciplinado, pode ser teimoso.",
"Água": "Inteligente, adaptável, comunicativo, intuitivo."
},
"Boi": {
"Madeira": "Criativo, cooperativo, trabalha bem em equipa.",
"Fogo": "Determinado, corajoso, por vezes teimoso.",
"Terra": "Confiável, paciente, persistente, realista.",
"Metal": "Forte, decidido, ambicioso, rígido.",
"Água": "Sensível, flexível, diplomático."
},
"Tigre": {
"Madeira": "Entusiasta, visionário, líder nato.",
"Fogo": "Corajoso, aventureiro, apaixonado, impetuoso.",
"Terra": "Estável, responsável, leal.",
"Metal": "Forte, independente, assertivo.",
"Água": "Perspicaz, intuitivo, mais introspectivo."
},
"Coelho": {
"Madeira": "Criativo, sociável, procura harmonia.",
"Fogo": "Elegante, dinâmico, expressivo, às vezes impulsivo.",
"Terra": "Prático, confiável, calmo.",
"Metal": "Determinado, sensível, artístico.",
"Água": "Flexível, intuitivo, diplomático."
},
"Dragão": {
"Madeira": "Confiante, expansivo, visionário.",
"Fogo": "Carismático, energético, ambicioso.",
"Terra": "Prático, estável, decidido.",
"Metal": "Forte, decidido, assertivo.",
"Água": "Inteligente, perspicaz, persuasivo."
},
"Serpente": {
"Madeira": "Inteligente, intuitiva, calma.",
"Fogo": "Apaixonada, persuasiva, dinâmica.",
"Terra": "Prática, paciente, sensata.",
"Metal": "Determined, estratégica, rígida.",
"Água": "Misteriosa, flexível, sensível."
},
"Cavalo": {
"Madeira": "Criativo, sociável, aventureiro.",
"Fogo": "Independente, energético, ousado.",
"Terra": "Estável, confiável, trabalhador.",
"Metal": "Determinado, perseverante, forte.",
"Água": "Flexível, intuitivo, emocional."
},
"Cabra": {
"Madeira": "Paciente, cooperativa, artística.",
"Fogo": "Criativa, apaixonada, expressiva.",
"Terra": "Estável, prática, confiável.",
"Metal": "Determined, sensível, introspectiva.",
"Água": "Flexível, intuitiva, diplomática."
},
"Macaco": {
"Madeira": "Inteligente, curioso, sociável.",
"Fogo": "Inventivo, audacioso, energético.",
"Terra": "Prático, persistente, realista.",
"Metal": "Determinado, ambicioso, competitivo.",
"Água": "Astuto, adaptável, persuasivo."
},
"Galo": {
"Madeira": "Organizado, confiável, comunicativo.",
"Fogo": "Determinado, corajoso, ambicioso.",
"Terra": "Prático, responsável, leal.",
"Metal": "Forte, disciplinado, assertivo.",
"Água": "Inteligente, persuasivo, observador."
},
"Cão": {
"Madeira": "Leal, cooperativo, honesto.",
"Fogo": "Corajoso, protetor, apaixonado.",
"Terra": "Estável, confiável, paciente.",
"Metal": "Determinado, firme, justo.",
"Água": "Sensível, intuitivo, diplomático."
},
"Porco": {
"Madeira": "Generoso, criativo, sociável.",
"Fogo": "Apaixonado, energético, optimista.",
"Terra": "Estável, confiável, trabalhador.",
"Metal": "Determinado, realista, persistente.",
"Água": "Sensível, intuitivo, bondoso."
}
} # Configuração da janela principal
root = Tk()
root.geometry("700x500")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Signos Chineses") # Título
titulo = Label(text="Signos Chineses", font=("Arial", 28, "bold"), bg="#103030", fg="#49e3e3")
titulo.place(relx=0.25, rely=0.05) # Dropdown para o signo
var1 = StringVar()
dropDownList1 = ["Rato", "Boi", "Tigre","Coelho","Dragão","Serpente","Cavalo","Cabra",
"Macaco","Galo","Cão","Porco"]
dropdown1 = OptionMenu(root, var1, *dropDownList1)
var1.set(dropDownList1[0])
dropdown1.place(relx=0.2, rely=0.25, relwidth=0.25)
dropdown1.config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", 20, "bold"))
dropdown1["menu"].config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", 20, "bold")) # Labels para Signo e Elemento
Label(text="Signo:", font=("Arial", 18, "bold"), bg="#103030", fg="#49e3e3").place(relx=0.05, rely=0.25)
Label(text="Elemento:", font=("Arial", 18, "bold"), bg="#103030", fg="#49e3e3").place(relx=0.5, rely=0.25) # Dropdown para o elemento
var2 = StringVar()
dropDownList2 = ["Madeira", "Fogo", "Terra", "Metal", "Água"]
dropdown2 = OptionMenu(root, var2, *dropDownList2)
var2.set(dropDownList2[0])
dropdown2.place(relx=0.7, rely=0.25, relwidth=0.25)
dropdown2.config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", 20, "bold"))
dropdown2["menu"].config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", 20, "bold")) # Label para mostrar o resultado
resultado = Label(root, text="", font=("Arial", 16), bg="#103030", fg="#FFFFFF", wraplength=650, justify="left")
resultado.place(relx=0.05, rely=0.6) # Função que mostra a descrição
def app():
signo = var1.get()
elemento = var2.get()
descricao = signos_chineses[signo][elemento]
resultado.config(text=f"{signo} ({elemento}): {descricao}") # Botão
but1 = Button(text="Mostrar", bd=2, bg='#107db2', fg='white', font=('verdana', 12, 'bold'), command=app)
but1.place(relx=0.35, rely=0.45, relwidth=0.25, relheight=0.1) root.mainloop()
0