Mundo em Python

Clássico Porto Benfica

from tkinter import *

# Dicionário com dados do clássico
classico_porto_benfica = {
"primeiro_jogo": {
"ano": 1913,
"data": "8 de dezembro",
"local": "Lisboa",
"resultado": "Benfica 3-2 Porto",
"vencedor": "Benfica",
"descricao": "O primeiro jogo oficial entre Porto e Benfica foi vencido pelo Benfica em Lisboa."
},

"total_de_confrontos": {
"jogos_oficiais": 259,
"vitorias_porto": 103,
"vitorias_benfica": 93,
"empates": 63
},

"maior_goleada_benfica": {
"resultado": "Benfica 7-0 Porto",
"ano": 1943,
"descricao": "Uma das maiores goleadas da história do clássico foi a vitória do Benfica por 7-0."
},

"maior_goleada_porto": {
"resultado": "Porto 5-0 Benfica",
"ano": 2024,
"descricao": "O Porto conseguiu uma vitória expressiva por 5-0 em 2024."
},

"resultados_recentes": [ {"ano": 2026, "competicao": "Liga Portugal", "resultado": "Benfica 2-2 Porto"},
{"ano": 2026, "competicao": "Taça de Portugal", "resultado": "Porto 1-0 Benfica"},
{"ano": 2025, "competicao": "Liga Portugal", "resultado": "Porto 0-0 Benfica"},
{"ano": 2025, "competicao": "Liga Portugal", "resultado": "Porto 1-4 Benfica"},
{"ano": 2024, "competicao": "Liga Portugal", "resultado": "Porto 5-0 Benfica"},
{"ano": 2023, "competicao": "Liga Portugal", "resultado": "Benfica 1-0 Porto"}
]
} # Função para mostrar informações na tela
def app(selection):
for widget in root.winfo_children():
if isinstance(widget, Label) and widget != titulo:
widget.destroy() # Limpa labels anteriores

# Mapear opções do dropdown para as chaves do dicionário
map_opcoes = {
"Primeiro Jogo": "primeiro_jogo",
"Total de Confrontos": "total_de_confrontos",
"Maior Goleada do Benfica": "maior_goleada_benfica",
"Maior Goleada Porto": "maior_goleada_porto",
"Resultados Recentes": "resultados_recentes"
} chave = map_opcoes.get(selection)
dados = classico_porto_benfica.get(chave) y = 0.35 # Ponto inicial vertical
if isinstance(dados, dict):
for k, v in dados.items():
if isinstance(v, str):
texto = f"{k.capitalize()}:\n{v}"
else:
texto = f"{k.capitalize()}: {v}"
Label(root, text=texto, font=("Arial", 16), bg="#103030", fg="#FFFFFF", justify="left", anchor="w").place(relx=0.05, rely=y)
y += 0.09
elif isinstance(dados, list):
for item in dados:
texto = " | ".join(f"{k.capitalize()}: {v}" for k, v in item.items())
Label(root, text=texto, font=("Arial", 16), bg="#103030", fg="#FFFFFF", justify="left", anchor="w").place(relx=0.05, rely=y)
y += 0.07

# Interface Tkinter
root = Tk()
root.geometry("800x500")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Clássico Porto Benfica") titulo = Label(
text="Clássico Porto Benfica", font=("Arial", 28, "bold"), bg="#103030", fg="#49e3e3"
)
titulo.place(relx=0.15, rely=0.05) var = StringVar()
dropDownList = ["Primeiro Jogo", "Total de Confrontos", "Maior Goleada do Benfica",
"Maior Goleada Porto", "Resultados Recentes"]
var.set(dropDownList[0]) dropdown = OptionMenu(root, var, *dropDownList, command=app)
dropdown.place(relx=0.2, rely=0.2, relwidth=0.6)
dropdown.config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", 20, "bold"))
dropdown["menu"].config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", 20, "bold")) # Mostrar opção inicial
app(var.get()) root.mainloop()
0