presidentes_sporting = [
{"num": 1, "nome": "Alfredo Holtreman, Visconde de Alvalade",
"inicio": "1906-05-08", "fim": "1910-01-03"},
{"num": 2, "nome": "Luís Caetano Pereira",
"inicio": "1910-01-04", "fim": "1910-06-25"},
{"num": 3, "nome": "José Alfredo Holtreman Roquette (José Alvalade)",
"inicio": "1910-06-26", "fim": "1912-11-01"},
{"num": 2, "nome": "Luís Caetano Pereira",
"inicio": "1912-11-02", "fim": "1913-10-04", "mandato": 2},
{"num": 4, "nome": "José da Mota Marques",
"inicio": "1913-10-05", "fim": "1914-11-15"},
{"num": 5, "nome": "Daniel Augusto de Queirós dos Santos",
"inicio": "1914-11-16", "fim": "1918-04-17"},
{"num": 6, "nome": "Mário de Lemos Pistacchini",
"inicio": "1918-04-18", "fim": "1918-07-26"},
{"num": 7, "nome": "António Nunes Soares Júnior",
"inicio": "1918-07-27", "fim": "1918-12-28"},
{"num": 6, "nome": "Mário de Lemos Pistacchini",
"inicio": "1918-12-29", "fim": "1921-07-24", "mandato": 2},
{"num": 7, "nome": "António Nunes Soares Júnior",
"inicio": "1921-07-25", "fim": "1921-11-20", "mandato": 2},
{"num": 8, "nome": "Manuel Garcia Carabe",
"inicio": "1921-11-21", "fim": "1922-07-13"},
{"num": 9, "nome": "Júlio Barreiros Cardoso de Araújo",
"inicio": "1922-07-14", "fim": "1923-07-20"},
{"num": 10, "nome": "Pedro Sanches Navarro",
"inicio": "1923-07-21", "fim": "1924-07-28"},
{"num": 9, "nome": "Júlio Cipriano Cruz Barreiros Cardoso de Araújo",
"inicio": "1924-07-29", "fim": "1925-02-18", "mandato": 2},
{"num": 11, "nome": "José Salazar Carreira",
"inicio": "1925-02-19", "fim": "1926-02-22"},
{"num": 10, "nome": "Pedro Sanches Navarro",
"inicio": "1926-02-23", "fim": "1927-05-09", "mandato": 2},
{"num": 7, "nome": "António Nunes Soares Júnior",
"inicio": "1927-05-10", "fim": "1928-09-04", "mandato": 3},
{"num": 12, "nome": "Joaquim Guerreiro de Oliveira Duarte",
"inicio": "1928-09-05", "fim": "1929-02-21"},
{"num": 13, "nome": "Eduardo Mário Costa",
"inicio": "1929-03-12", "fim": "1929-10-02"},
{"num": 14, "nome": "Álvaro José de Sousa",
"inicio": "1929-10-03", "fim": "1931-07-26"},
{"num": 15, "nome": "Artur Silva",
"inicio": "1931-07-27", "fim": "1932-02-10"},
{"num": 16, "nome": "Carlos Correia Pinto da Silva",
"inicio": "1932-02-11", "fim": "1932-03-22"},
{"num": 17, "nome": "Álvaro Luís Retamoza Dias",
"inicio": "1932-03-23", "fim": "1932-07-27"},
{"num": 12, "nome": "Joaquim Guerreiro de Oliveira Duarte",
"inicio": "1932-07-28", "fim": "1942-09-01", "mandato": 2},
{"num": 18, "nome": "Augusto Amado de Aguilar",
"inicio": "1942-09-02", "fim": "1943-10-25"},
{"num": 19, "nome": "Diogo Guilherme da Silva Alves Furtado",
"inicio": "1943-10-26", "fim": "1943-11-16"},
{"num": 20, "nome": "Alberto da Cunha e Silva",
"inicio": "1943-11-17", "fim": "1944-11-03"},
{"num": 21, "nome": "Augusto Fernando Barreira de Campos",
"inicio": "1944-11-04", "fim": "1946-02-07"},
{"num": 22, "nome": "António José Ribeiro Ferreira",
"inicio": "1946-02-08", "fim": "1953-02-12"},
{"num": 23, "nome": "Carlos Cecílio Nunes Góis Mota",
"inicio": "1953-02-13", "fim": "1957-02-27"},
{"num": 24, "nome": "Francisco Maria de Moncada do Casal-Ribeiro de Carvalho",
"inicio": "1957-02-28", "fim": "1958-12-14"},
{"num": 25, "nome": "Guilherme Braga Brás Medeiros",
"inicio": "1958-12-15", "fim": "1961-05-09"},
{"num": 26, "nome": "Gaudêncio Luís da Silva Costa",
"inicio": "1961-05-10", "fim": "1962-03-18"},
{"num": 27, "nome": "Joel Azevedo da Silva Pascoal",
"inicio": "1962-03-19", "fim": "1963-05-09"},
{"num": 28, "nome": "Horácio José de Sá Viana Rebelo",
"inicio": "1963-05-10", "fim": "1964-05-28"},
{"num": 29, "nome": "Martiniano Alexandre Pissarra Homem de Figueiredo",
"inicio": "1964-05-29", "fim": "1965-07-27"},
{"num": 25, "nome": "Guilherme Braga Brás Medeiros",
"inicio": "1965-07-28", "fim": "1973-04-03", "mandato": 2},
{"num": 30, "nome": "Orlando Valadão Chagas",
"inicio": "1973-04-04", "fim": "1973-04-05"},
{"num": 31, "nome": "Manuel Henriques de Nazareth",
"inicio": "1973-04-05", "fim": "1973-09-06"},
{"num": 32, "nome": "João António dos Anjos Rocha",
"inicio": "1973-09-07", "fim": "1986-10-02"},
{"num": 33, "nome": "João Amado de Freitas",
"inicio": "1986-10-03", "fim": "1988-06-27"},
{"num": 34, "nome": "Jorge Manuel Alegre Gonçalves",
"inicio": "1988-06-28", "fim": "1989-06-30"},
{"num": 35, "nome": "José de Sousa Cintra",
"inicio": "1989-07-01", "fim": "1995-06-01"},
{"num": 36, "nome": "Pedro Miguel de Santana Lopes",
"inicio": "1995-06-02", "fim": "1996-04-09"},
{"num": 37, "nome": "José Alfredo Parreira Holtreman Roquette",
"inicio": "1996-04-10", "fim": "2000-07-31"},
{"num": 38, "nome": "António Augusto Serra Campos Dias da Cunha",
"inicio": "2000-08-01", "fim": "2005-10-18"},
{"num": 39, "nome": "Filipe Pinto Basto Soares Franco",
"inicio": "2005-10-19", "fim": "2009-06-05"},
{"num": 40, "nome": "José Eduardo Fragoso Tavares de Bettencourt",
"inicio": "2009-06-06", "fim": "2011-03-25"},
{"num": 41, "nome": "Luís Filipe Fernandes David Godinho Lopes",
"inicio": "2011-03-27", "fim": "2013-03-26"},
{"num": 42, "nome": "Bruno Miguel de Azevedo Gaspar de Carvalho",
"inicio": "2013-03-27", "fim": "2018-06-22"},
{"num": 43, "nome": "Frederico Nuno Faro Varandas",
"inicio": "2018-09-09", "fim": "Presente"} # atual
]
from tkinter import *
from datetime import datetime
dropDownList = [p["nome"] for p in presidentes_sporting]
root = Tk()
root.geometry("700x500")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Presidentes do Sporting Clube de Portugal")
titulo = Label(
text="Presidentes do Sporting Clube de Portugal",
font=("Arial", 25, "bold"),
bg="#103030",
fg="#49e3e3"
)
titulo.place(relx=0.03, rely=0.05)
var = StringVar()
var.set(dropDownList[0])
dropdown = OptionMenu(root, var, *dropDownList)
dropdown.place(relx=0.05, rely=0.20, relwidth=0.9)
dropdown.config(background='#09A3BA', foreground="#FFFFFF", font=('verdana', 15, 'bold'))
dropdown["menu"].config(background='#09A3BA', foreground="#FFFFFF", font=('verdana', 15, 'bold'))
frame_scroll = Frame(root)
frame_scroll.place(relx=0.05, rely=0.55, relwidth=0.9, relheight=0.35)
scrollbar = Scrollbar(frame_scroll)
scrollbar.pack(side=RIGHT, fill=Y)
texto = Text(frame_scroll, yscrollcommand=scrollbar.set, font=("Arial", 12, "bold"), bg="#cfe2f3")
texto.pack(fill=BOTH, expand=True)
scrollbar.config(command=texto.yview)
def calcular_tempo(inicio, fim):
inicio_date = datetime.strptime(inicio, "%Y-%m-%d")
if fim == "Presente":
fim_date = datetime.today()
else:
fim_date = datetime.strptime(fim, "%Y-%m-%d")
diff = fim_date - inicio_date
anos = diff.days // 365
meses = (diff.days % 365) // 30
dias = (diff.days % 365) % 30
return f"{anos} anos, {meses} meses e {dias} dias"
def app():
selecionado = var.get()
texto.delete("1.0", END)
for p in presidentes_sporting:
if p["nome"] == selecionado:
inicio = p["inicio"]
fim = p["fim"]
numero = p["num"]
mandato = p.get("mandato", 1)
tempo = calcular_tempo(inicio, fim)
texto.insert(END, f"Presidente nº {numero}\n")
texto.insert(END, f"Nome: {selecionado}\n")
texto.insert(END, f"Mandato: {mandato}º mandato\n\n")
texto.insert(END, f"Início do mandato: {inicio}\n")
texto.insert(END, f"Fim do mandato: {fim}\n\n")
texto.insert(END, f"Tempo total como presidente: {tempo}\n")
return
def limpar():
texto.delete("1.0", END)
var.set(dropDownList[0])
but1 = Button(
text="Mostrar",
bd=2,
bg='#107db2',
fg='white',
font=('verdana', 12, 'bold'),
command=app
)
but1.place(relx=0.1, rely=0.40, 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.40, 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.40, relwidth=0.25, relheight=0.1)
root.mainloop()