from tkinter import *
governadores_banco_portugal = {
"António Augusto Pereira de Miranda": [(1887, 1891)],
"Pedro Augusto de Carvalho": [(1891, 1894)],
"Júlio Marques de Vilhena": [(1895, 1907)],
"José Adolfo de Melo e Sousa": [(1907, 1910)],
"Inocêncio Camacho Rodrigues": [(1911, 1936)],
"Rafael da Silva Duque": [(1957, 1963)],
"Manuel Jacinto Nunes": [(1963, 1966), (1974, 1975), (1980, 1985)],
"António Pinto Barbosa": [(1966, 1974)],
"José da Silva Lopes": [(1975, 1980)],
"Vítor Constâncio": [(1985, 1986), (2000, 2010)],
"José Alberto Tavares Moreira": [(1986, 1992)],
"Miguel Beleza": [(1992, 1994)],
"António de Sousa": [(1994, 2000)],
"Carlos da Silva Costa": [(2010, 2020)],
"Mário Centeno": [(2020, 2025)],
"Álvaro Santos Pereira": [(2025, None)]
}
ordem_governadores = list(governadores_banco_portugal.keys())
def ordinal(n):
return f"{n}º"
# Criar a janela principal
root = Tk()
root.geometry("700x400")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Lista de Banco de Portugal")
# Título
titulo = Label(root, text="Lista de Banco de Portugal", font=("Arial", 28, "bold"),
bg="#103030", fg="#49e3e3")
titulo.place(relx=0.15, rely=0.05)
# Subtítulo
texto_sub1 = Label(root, text="Escolha um governador:", font=("Arial", 18, "bold"),
bg="#103030", fg="#49e3e3")
texto_sub1.place(relx=0.05, rely=0.25)
# Variável do dropdown
var = StringVar()
dropDownList = ordem_governadores
# Criar dropdown
dropdown = OptionMenu(root, var, *dropDownList)
var.set(dropDownList[0])
dropdown.place(relx=0.25, rely=0.4)
dropdown.config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", 18, "bold"))
dropdown["menu"].config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", 18, "bold"))
resultado_texto = Label(root, text="", font=("Arial", 14, "bold"),
bg="#cfe2f3", justify=LEFT, anchor="nw", bd=2, relief="groove")
resultado_texto.place(relx=0.05, rely=0.55, relwidth=0.9, relheight=0.35)
def mostrar_mandato(*args):
nome = var.get()
mandatos = governadores_banco_portugal.get(nome, [])
posicao = ordem_governadores.index(nome) + 1
posicao_texto = ordinal(posicao)
texto = f"{nome} foi o {posicao_texto} governador do Banco de Portugal.\n\n"
for i, (inicio, fim) in enumerate(mandatos, 1):
fim_texto = "presente" if fim is None else str(fim)
interino = " (interino)" if nome == "Manuel Jacinto Nunes" and i == 1 else ""
texto += f"Mandato {i}: {inicio} – {fim_texto}{interino}\n"
if nome == "Vítor Constâncio":
texto += "\nEsteve no 12º e no 16º mandatos."
if nome == "Manuel Jacinto Nunes":
texto += "\nEsteve no 7º, 9º e no 11º mandatos."
resultado_texto.config(text=texto)
var.trace("w", mostrar_mandato)
mostrar_mandato()
root.mainloop()
Comentários
Enviar um comentário