from tkinter import *
# --- Dados do FC Porto ---
# Guarda-redes
gk = [
{"nome": "Diogo Costa", "idade": 25, "nacionalidade": "Portugal"},
{"nome": "Cláudio Ramos", "idade": 30, "nacionalidade": "Portugal"},
{"nome": "João Costa", "idade": 21, "nacionalidade": "Portugal"}
]
# Defesas
defesas = [
{"nome": "Jakub Kiwior", "posição": "Defesa-central (esquerdo)", "idade": 22, "nacionalidade": "Polónia"},
{"nome": "Jan Bednarek", "posição": "Defesa-central (direito)", "idade": 27, "nacionalidade": "Polónia"},
{"nome": "Nehuén Pérez", "posição": "Defesa-central (esquerdo)", "idade": 24, "nacionalidade": "Argentina"},
{"nome": "Alberto Costa", "posição": "Defesa-central (direito)", "idade": 21, "nacionalidade": "Portugal"},
{"nome": "Martim Pires", "posição": "Lateral-esquerdo", "idade": 22, "nacionalidade": "Portugal"},
{"nome": "Francisco Moura", "posição": "Lateral-esquerdo", "idade": 23, "nacionalidade": "Portugal"},
{"nome": "Rodrigo Mora", "posição": "Lateral-direito", "idade": 24, "nacionalidade": "Portugal"},
{"nome": "Victor Mow Froholdt", "posição": "Lateral-direito", "idade": 25, "nacionalidade": "Noruega"}
]
# Médios
medios = [
{"nome": "Pablo Rosario", "posição": "Médio defensivo", "idade": 26, "nacionalidade": "Holanda"},
{"nome": "Alan Gonzalo Varela", "posição": "Médio centro", "idade": 23, "nacionalidade": "Argentina"},
{"nome": "Stephen Eustáquio", "posição": "Médio centro", "idade": 28, "nacionalidade": "Canadá"},
{"nome": "Gabriel Veiga", "posição": "Médio ofensivo", "idade": 22, "nacionalidade": "Portugal"},
{"nome": "Rodrigo Mora", "posição": "Médio ofensivo", "idade": 24, "nacionalidade": "Portugal"}
]
# Avançados
avancados = [
{"nome": "Luuk de Jong", "posição": "Ponta-de-lança", "idade": 32, "nacionalidade": "Países Baixos"},
{"nome": "Samu Aghehowa", "posição": "Extremo esquerdo", "idade": 25, "nacionalidade": "Portugal"},
{"nome": "Pepê", "posição": "Extremo direito", "idade": 25, "nacionalidade": "Brasil"},
{"nome": "Borja Sainz", "posição": "Extremo esquerdo", "idade": 23, "nacionalidade": "Espanha"},
{"nome": "William Gomes", "posição": "Extremo direito", "idade": 24, "nacionalidade": "Brasil"}
]
# Equipa Técnica
fcporto_equipa_tecnica = {
"Treinador Principal": "Francesco Farioli",
"Treinadores Adjuntos": ["Dave Vos", "Lino Godinho", "Lucho González", "André Castro"],
"Preparador Físico": "Callum Walsh",
"Analista": "Osman Kul",
"Treinadores de Guarda-Redes": ["Iñaki Ulloa", "Diogo Almeida"]
}
# --- Interface gráfica (Tkinter) ---
root = Tk()
root.geometry("700x450")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Jogadores do FC Porto")
# Título
titulo = Label(text="Jogadores do FC Porto",
font=("Arial", 28, "bold"), bg="#103030", fg="#49e3e3")
titulo.place(relx=0.18, rely=0.05)
# Subtítulo
texto_sub1 = Label(text="Escolha uma opção:",
font=("Arial", 18, "bold"), bg="#103030", fg="#49e3e3")
texto_sub1.place(relx=0.05, rely=0.25)
# Dropdown
var = StringVar()
dropDownList = ["Guarda-redes", "Defesas", "Médios", "Avançados", "Equipa Técnica"]
dropdown = OptionMenu(root, var, *dropDownList)
var.set(dropDownList[0])
dropdown.place(relx=0.45, rely=0.25, relwidth=0.45)
dropdown.config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", 18, "bold"))
dropdown["menu"].config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", 18, "bold"))
# --- Área de resultados com Listbox + Scrollbar ---
frame_resultado = Frame(root, bg="#cfe2f3", bd=2, relief="sunken")
frame_resultado.place(relx=0.05, rely=0.45, relwidth=0.9, relheight=0.35)
scrollbar = Scrollbar(frame_resultado)
scrollbar.pack(side=RIGHT, fill=Y)
listbox = Listbox(frame_resultado, font=("Arial", 12, "bold"),
bg="#e6f0fa", fg="#000000",
yscrollcommand=scrollbar.set)
listbox.pack(side=LEFT, fill=BOTH, expand=True)
scrollbar.config(command=listbox.yview)
# --- Funções ---
def limpar():
listbox.delete(0, END)
def app():
listbox.delete(0, END)
escolha = var.get()
if escolha == "Guarda-redes":
for jogador in gk:
listbox.insert(END, f"{jogador['nome']} — {jogador['idade']} anos — {jogador['nacionalidade']}")
elif escolha == "Defesas":
for jogador in defesas:
listbox.insert(END, f"{jogador['nome']} — {jogador['posição']} — {jogador['idade']} anos — {jogador['nacionalidade']}")
elif escolha == "Médios":
for jogador in medios:
listbox.insert(END, f"{jogador['nome']} — {jogador['posição']} — {jogador['idade']} anos — {jogador['nacionalidade']}")
elif escolha == "Avançados":
for jogador in avancados:
listbox.insert(END, f"{jogador['nome']} — {jogador['posição']} — {jogador['idade']} anos — {jogador['nacionalidade']}")
elif escolha == "Equipa Técnica":
listbox.insert(END, f"Treinador Principal: {fcporto_equipa_tecnica['Treinador Principal']}")
listbox.insert(END, "Treinadores Adjuntos:")
for adjunto in fcporto_equipa_tecnica["Treinadores Adjuntos"]:
listbox.insert(END, f" - {adjunto}")
listbox.insert(END, f"Preparador Físico: {fcporto_equipa_tecnica['Preparador Físico']}")
listbox.insert(END, f"Analista: {fcporto_equipa_tecnica['Analista']}")
listbox.insert(END, "Treinadores de Guarda-Redes:")
for gk_treinador in fcporto_equipa_tecnica["Treinadores de Guarda-Redes"]:
listbox.insert(END, f" - {gk_treinador}")
else:
listbox.insert(END, "Seleção inválida.")
# --- Botões ---
but_mostrar = Button(text="Mostrar", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=app)
but_mostrar.place(relx=0.1, rely=0.85, 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.85, 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.85, relwidth=0.25, relheight=0.1)
root.mainloop()