from tkinter import *
primeira_liga_estadios = {
"Benfica": {"estadio": "Estádio da Luz", "capacidade": 65592},
"Sporting CP": {"estadio": "Estádio José Alvalade", "capacidade": 50095},
"FC Porto": {"estadio": "Estádio do Dragão", "capacidade": 50033},
"SC Braga": {"estadio": "Estádio Municipal de Braga", "capacidade": 30286},
"Vitória SC": {"estadio": "Estádio D. Afonso Henriques", "capacidade": 30029},
"Gil Vicente": {"estadio": "Estádio Cidade de Barcelos", "capacidade": 12046},
"Santa Clara": {"estadio": "Estádio de São Miguel", "capacidade": 12500},
"Estrela da Amadora": {"estadio": "Estádio José Gomes", "capacidade": 9288},
"AVS": {"estadio": "Estádio do CD Aves", "capacidade": 6230},
"Casa Pia": {"estadio": "Estádio Municipal de Rio Maior", "capacidade": 7000},
"Farense": {"estadio": "Estádio de São Luís", "capacidade": 7000},
"Famalicão": {"estadio": "Estádio Municipal de Famalicão", "capacidade": 5186},
"Arouca": {"estadio": "Estádio Municipal de Arouca", "capacidade": 5600},
"Moreirense": {"estadio": "Estádio Comendador Joaquim de Almeida Freitas", "capacidade": 6150},
"Rio Ave": {"estadio": "Estádio dos Arcos", "capacidade": 5300},
"Estoril": {"estadio": "Estádio António Coimbra da Mota", "capacidade": 5094},
"Nacional": {"estadio": "Estádio da Madeira", "capacidade": 5200}
}
root = Tk()
root.geometry("700x400")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Taxa de ocupação - Primeira Liga")
titulo = Label(
root,
text="Taxa de ocupação dos estádios da Primeira Liga",
font=("Arial", 18, "bold"),
bg="#103030",
fg="#49e3e3"
)
titulo.place(relx=0.05, rely=0.05)
texto_sub1 = Label(
root,
text="Número de espectadores:",
font=("Arial", 14, "bold"),
bg="#103030",
fg="#49e3e3"
)
texto_sub1.place(relx=0.1, rely=0.25)
Numero_espectadores = StringVar()
Numero_espectadores_entrada = Entry(
root,
textvariable=Numero_espectadores,
font=("Arial", 12, "bold"),
bg="white",
fg="blue",
justify='center'
)
Numero_espectadores_entrada.place(relx=0.55, rely=0.26, relwidth=0.35)
Numero_espectadores_entrada.focus()
texto_sub2 = Label(
root,
text="Estádio do:",
font=("Arial", 14, "bold"),
bg="#103030",
fg="#49e3e3"
)
texto_sub2.place(relx=0.1, rely=0.4)
var = StringVar()
var.set("Benfica")
dropdown = OptionMenu(root, var, *primeira_liga_estadios.keys())
dropdown.place(relx=0.5, rely=0.4, relwidth=0.45, relheight=0.1)
dropdown.config(background='#09A3BA', foreground="white",font=('verdana', 14, 'bold'))
dropdown["menu"].config(background='#09A3BA', foreground="white",font=('verdana', 14, 'bold'))
def limpar():
Numero_espectadores_entrada.delete(0, END)
resultado_texto.config(text="", fg="black")
def app():
try:
clube = var.get()
espectadores = int(Numero_espectadores.get())
capacidade = primeira_liga_estadios[clube]["capacidade"]
if espectadores < 0:
resultado_texto.config(
text="O número de espectadores não pode ser negativo.",
fg="black"
)
return
if espectadores > capacidade:
resultado_texto.config(
text=f"Capacidade máxima do estádio: {capacidade} lugares.",
fg="black"
)
return
taxa = (espectadores / capacidade) * 100
if taxa < 40:
classificacao = "Baixa ocupação"
cor = "red"
elif taxa < 75:
classificacao = "Média ocupação"
cor = "orange"
else:
classificacao = "Alta ocupação"
cor = "green"
resultado_texto.config(
text=f"Estádio: {primeira_liga_estadios[clube]['estadio']} | "
f"Taxa: {taxa:.2f}% | "
f"Classificação: {classificacao}",
fg=cor
)
except ValueError:
resultado_texto.config(
text="Por favor, insira um número válido.",
fg="black"
)
but1 = Button(
root,
text="Calcular",
bd=2,
bg='#107db2',
fg='white',
font=('verdana', 12, 'bold'),
command=app
)
but1.place(relx=0.1, rely=0.55, relwidth=0.25, relheight=0.1)
but_limpar = Button(
root,
text="Limpar",
bd=2,
bg='#107db2',
fg='white',
font=('verdana', 12, 'bold'),
command=limpar
)
but_limpar.place(relx=0.4, rely=0.55, relwidth=0.25, relheight=0.1)
but_sair = Button(
root,
text="Sair",
bd=2,
bg='#107db2',
fg='white',
font=('verdana', 12, 'bold'),
command=root.destroy
)
but_sair.place(relx=0.7, rely=0.55, relwidth=0.25, relheight=0.1)
resultado_texto = Label(
root,
text="",
font=("Arial", 12, "bold"),
bg="#cfe2f3"
)
resultado_texto.place(relx=0.05, rely=0.7, relwidth=0.9, relheight=0.2)
root.mainloop()