Mundo em Python

Equipa do Sporting

from tkinter import *

# Dados dos jogadores
sporting_players = {
# Guarda-redes
1: {"number": 1, "name": "Rui Silva", "position": "Guarda-redes"},
12: {"number": 12, "name": "João Virgínia", "position": "Guarda-redes"},
41: {"number": 41, "name": "Diego Callai", "position": "Guarda-redes"},
99: {"number": 99, "name": "Francisco Silva", "position": "Guarda-redes"},

# Defesas
13: {"number": 13, "name": "Georgios Vagiannidis", "position": "Lateral Direito"},
22: {"number": 22, "name": "Iván Fresneda", "position": "Lateral Esquerdo"},
25: {"number": 25, "name": "Gonçalo Inácio", "position": "Central"},
26: {"number": 26, "name": "Ousmane Diomande", "position": "Central"},
3: {"number": 3, "name": "Jeremiah St. Juste", "position": "Central"},
43: {"number": 43, "name": "João Muniz", "position": "Central"},
6: {"number": 6, "name": "Zeno Debast", "position": "Central"},
72: {"number": 72, "name": "Eduardo Quaresma", "position": "Central"},
11: {"number": 11, "name": "Nuno Santos", "position": "Lateral Esquerdo"},
2: {"number": 2, "name": "Matheus Reis", "position": "Lateral Direito"},
20: {"number": 20, "name": "Maxi Araújo", "position": "Lateral Esquerdo"},
91: {"number": 91, "name": "Ricardo Mangas", "position": "Lateral Direito"},
47: {"number": 47, "name": "Ricardo Esgaio", "position": "Lateral Direito"},

# Médios
42: {"number": 42, "name": "Morten Hjulmand", "position": "Médio Defensivo"},
60: {"number": 60, "name": "Rayan Lucas", "position": "Médio Centro"},
14: {"number": 14, "name": "Giorgi Kochorashvili", "position": "Médio Defensivo"},
23: {"number": 23, "name": "Daniel Bragança", "position": "Médio Centro"},
5: {"number": 5, "name": "Hidemasa Morita", "position": "Médio Defensivo"},
52: {"number": 52, "name": "João Simões", "position": "Médio Ofensivo"},

# Avançados
10: {"number": 10, "name": "Geny Catamo", "position": "Extremo Direito"},
17: {"number": 17, "name": "Francisco Trincão", "position": "Extremo Esquerdo"},
63: {"number": 63, "name": "Chris Grombahi", "position": "Extremo Direito"},
70: {"number": 70, "name": "Salvador Blopa", "position": "Extremo Esquerdo"},
28: {"number": 28, "name": "Rodrigo Ribeiro", "position": "Extremo Direito"},
89: {"number": 89, "name": "Fotis Ioannidis", "position": "Ponta de Lança"},
97: {"number": 97, "name": "Luis Suárez", "position": "Ponta de Lança"},
27: {"number": 27, "name": "Alisson Santos", "position": "Extremo Esquerdo"},
58: {"number": 58, "name": "Flávio Gonçalves", "position": "Extremo Direito"},
7: {"number": 7, "name": "Geovany Quenda", "position": "Extremo Direito"},
8: {"number": 8, "name": "Pedro Gonçalves", "position": "Extremo Esquerdo"},
}
# Função para mostrar jogadores
def mostrar():
resultado_texto.delete("1.0", END) # limpa antes
posicao = var.get()
mapping = {
"Guarda-Redes": ["Guarda-redes"],
"Devesa": ["Lateral Direito", "Lateral Esquerdo", "Central"],
"Médios": ["Médio Defensivo", "Médio Centro", "Médio Ofensivo"],
"Avançados": ["Extremo Direito", "Extremo Esquerdo", "Ponta de Lança"]
} posicoes_busca = mapping.get(posicao, []) for jogador in sporting_players.values():
if jogador["position"] in posicoes_busca:
resultado_texto.insert(END, f"{jogador['number']} - {jogador['name']} ({jogador['position']})\n")
# Função para limpar resultado
def limpar():
resultado_texto.delete("1.0", END)
# Configuração da janela
root = Tk()
root.geometry("700x400")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Equipa do Sporting") # Título
titulo = Label(
text="Equipa do Sporting",
font=("Arial", 28, "bold"),
bg="#103030",
fg="#49e3e3"
)
titulo.place(relx=0.23, rely=0.05) # Texto do dropdown
texto_sub1 = Label(
text="Escolha uma hipótese:",
font=("Arial", 20, "bold"),
bg="#103030",
fg="#49e3e3"
)
texto_sub1.place(relx=0.05, rely=0.3) # Dropdown
var = StringVar()
dropDownList = ["Guarda-Redes", "Devesa", "Médios", "Avançados"]
dropdown = OptionMenu(root, var, *dropDownList)
var.set(dropDownList[0])
dropdown.place(relx=0.55, rely=0.31, relwidth=0.35)
dropdown.config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", 19, "bold"))
dropdown["menu"].config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", 19, "bold")) # Botões
but1 = Button(
text="Mostrar",
bd=2,
bg='#107db2',
fg='white',
font=('verdana', 12, 'bold'),
command=mostrar
)
but1.place(relx=0.1, rely=0.5, 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.5, 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.5, relwidth=0.25, relheight=0.1) # Frame para o Text + Scrollbar
frame_resultado = Frame(root)
frame_resultado.place(relx=0.05, rely=0.7, relwidth=0.9, relheight=0.25) # Scrollbar vertical
scrollbar = Scrollbar(frame_resultado)
scrollbar.pack(side=RIGHT, fill=Y) # Widget Text
resultado_texto = Text(
frame_resultado,
font=("Arial", 12, "bold"),
yscrollcommand=scrollbar.set,
wrap=NONE
)
resultado_texto.pack(side=LEFT, fill=BOTH, expand=True) scrollbar.config(command=resultado_texto.yview) root.mainloop()
0