from tkinter import *
def atualizar_presidentes(periodo):
presidentes_por_periodo = {
'I República (1910 - 1926)': [
("Teófilo Braga", "1910-1911", "Provisório",
"Teófilo Braga liderou o Governo Provisório após a implantação da República em 1910.",
"Proclamação da República, Constituição de 1911."),
("Manuel de Arriaga", "1911-1915", "Primeiro Presidente Eleito",
"Primeiro presidente democraticamente eleito, enfrentou instabilidade política.",
"Crises políticas, início da Primeira Guerra Mundial."),
("Teófilo Braga", "1915", "Interino",
"Assumiu interinamente após a renúncia de Manuel de Arriaga.",
"Transição para novo governo."),
("Bernardino Machado", "1915-1917", "Reformista",
"Presidente durante o envolvimento de Portugal na Primeira Guerra Mundial.",
"Intervenção na guerra, aumento das tensões políticas."),
("Sidónio Pais", "1917-1918", "O Presidente-Rei",
"Estabeleceu um regime autoritário após um golpe de Estado.",
"Regime autoritário, assassinato em 1918."),
("João do Canto e Castro", "1918-1919", "Provisório",
"Assumiu após a morte de Sidónio Pais, durante uma crise política.",
"Transição após o Sidonismo."),
("António José de Almeida", "1919-1923", "Constitucionalista",
"Presidente durante um período de relativa estabilidade.",
"Aprovação da Constituição de 1919."),
("Manuel Teixeira Gomes", "1923-1925", "Intelectual",
"Renunciou ao cargo devido a conflitos políticos.",
"Renúncia e instabilidade crescente."),
("Bernardino Machado", "1925-1926", "Reformista",
"Segundo mandato marcado pelo fim da I República.",
"Golpe militar de 1926.")
],
'II República (1933 - 1974)': [
("Óscar Carmona", "1926-1951", "Estabilizador",
"Presidente durante o Estado Novo, consolidando o regime autoritário.",
"Constituição de 1933, repressão de movimentos opositores."),
("Francisco Craveiro Lopes", "1951-1958", "Transição",
"Presidente que se distanciou de Salazar.",
"Eleição de Humberto Delgado."),
("Américo Tomás", "1958-1974", "Último do Estado Novo",
"Último presidente antes da Revolução dos Cravos.",
"Crescimento da oposição, declínio do Estado Novo.")
],
'III República (1974 - presente)': [
("António de Spínola", "1974", "Transição",
"Primeiro presidente pós-Revolução dos Cravos.",
"Descolonização, início da democracia."),
("Francisco da Costa Gomes", "1974-1976", "Intermediário",
"Presidente durante a estabilização do regime democrático.",
"Aprovação da Constituição de 1976."),
("António Ramalho Eanes", "1976-1986", "Consolidado",
"Primeiro presidente eleito em democracia plena.",
"Consolidação da democracia."),
("Mário Soares", "1986-1996", "Europeísta",
"Primeiro presidente civil em décadas.",
"Integração na CEE."),
("Jorge Sampaio", "1996-2006", "Moderador",
"Focado em questões sociais e na estabilidade política.",
"Crise do governo de Santana Lopes."),
("Aníbal Cavaco Silva", "2006-2016", "Economista",
"Primeiro presidente com forte experiência como primeiro-ministro.",
"Crise financeira de 2008."),
("Marcelo Rebelo de Sousa", "2016-presente", "Popular",
"Presidente conhecido pelo contacto próximo com os cidadãos.",
"Gestão da pandemia da COVID-19.")
]
}
menu = dropdown_presidentes["menu"]
menu.delete(0, "end")
if periodo in presidentes_por_periodo:
for nome, anos, titulo, descricao, eventos in presidentes_por_periodo[periodo]:
menu.add_command(
label=nome,
command=lambda n=nome, a=anos, t=titulo, d=descricao, e=eventos: exibir_info(n, a, t, d, e)
)
if presidentes_por_periodo[periodo]:
var_presidentes.set(presidentes_por_periodo[periodo][0][0])
else:
var_presidentes.set("")
exibir_info("", "", "", "", "")
def exibir_info(nome, anos, titulo, descricao, eventos):
mensagem = f"Nome: {nome}\nAnos no cargo: {anos}\nTítulo: {titulo}\nDescrição: {descricao}\nEventos marcantes: {eventos}"
resultado_texto.config(state=NORMAL)
resultado_texto.delete(1.0, END)
resultado_texto.insert(END, mensagem)
resultado_texto.config(state=DISABLED)
root = Tk()
root.geometry("700x600")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Presidentes de Portugal")
titulo = Label(root, text="Presidentes de Portugal", font=("Arial", 24, "bold"), bg="#103030", fg="#49e3e3")
titulo.place(relx=0.1, rely=0.05)
texto_periodo = Label(root, text="Período:", font=("Arial", 18, "bold"), bg="#103030", fg="#49e3e3")
texto_periodo.place(relx=0.1, rely=0.18)
texto_presidente = Label(root, text="Presidente:", font=("Arial", 18, "bold"), bg="#103030", fg="#49e3e3")
texto_presidente.place(relx=0.6, rely=0.18)
var_periodo = StringVar()
var_periodo.set("I República (1910 - 1926)")
periodos = ["I República (1910 - 1926)", "II República (1933 - 1974)", "III República (1974 - presente)"]
dropdown_periodos = OptionMenu(root, var_periodo, *periodos, command=atualizar_presidentes)
dropdown_periodos.place(relx=0.1, rely=0.3, relwidth=0.35, relheight=0.1)
dropdown_periodos.config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", 12, "bold"))
dropdown_periodos["menu"].config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", 12, "bold"))
var_presidentes = StringVar()
var_presidentes.set("")
dropdown_presidentes = OptionMenu(root, var_presidentes, "")
dropdown_presidentes.place(relx=0.6, rely=0.3, relwidth=0.35, relheight=0.1)
dropdown_presidentes.config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", 12, "bold"))
dropdown_presidentes["menu"].config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", 12, "bold"))
resultado_texto = Text(root, wrap=WORD, font=("Arial", 12), bg="#cfe2f3", height=10, padx=10, pady=10)
resultado_texto.place(relx=0.05, rely=0.5, relwidth=0.9, relheight=0.4)
resultado_texto.config(state=DISABLED)
atualizar_presidentes(var_periodo.get())
root.mainloop()