Mundo em Python

Lista de líderes do PSD

from tkinter import *

# Lista de líderes do PSD
lideres_psd = [
{
"nome": "Francisco Sá Carneiro",
"periodo": "1974–1975 e 1976–1980",
"observacoes": "Fundador do partido e uma das figuras centrais da Aliança Democrática (AD). Foi Primeiro-Ministro até à sua morte em 1980."
},
{
"nome": "Emílio Rui Vilar",
"periodo": "1975–1976",
"observacoes": "Presidente da Comissão Política Nacional (CPN) interino no período pós-Sá Carneiro."
},
{
"nome": "António Sousa Franco",
"periodo": "1976",
"observacoes": "Presidente da CPN. Deixou o cargo após divergências com Sá Carneiro, tendo posteriormente fundado a Ação Social Democrata Independente (ASDI)."
},
{
"nome": "José Menéres Pimentel",
"periodo": "1978",
"observacoes": "Liderou o partido num curto período de transição. Foi Ministro da Justiça no VI Governo Constitucional."
},
{
"nome": "Carlos Mota Pinto",
"periodo": "1978–1979",
"observacoes": "Reassumiu a liderança após a renúncia de Sá Carneiro. Viria a ser Vice-Primeiro-Ministro no Governo de Bloco Central (1983-1985)."
},
{
"nome": "Francisco Pinto Balsemão",
"periodo": "1981–1983",
"observacoes": "Assumiu após a morte de Sá Carneiro, liderando a Aliança Democrática (AD) e sendo Primeiro-Ministro de Portugal."
},
{
"nome": "Nuno Rodrigues dos Santos",
"periodo": "1983",
"observacoes": "Presidente interino do partido após a saída de Balsemão, antes de Rui Machete ser eleito."
},
{
"nome": "Rui Machete",
"periodo": "1983–1985",
"observacoes": "Conduziu o PSD no Governo do Bloco Central com o PS. Deixou a liderança após ser derrotado por Cavaco Silva."
},
{
"nome": "Aníbal Cavaco Silva",
"periodo": "1985–1995",
"observacoes": "Liderou o PSD nas primeiras maiorias absolutas (1987 e 1991). Foi Primeiro-Ministro por 10 anos e mais tarde Presidente da República."
},
{
"nome": "Fernando Nogueira",
"periodo": "1995–1996",
"observacoes": "Vice-Primeiro-Ministro de Cavaco Silva, assumiu a liderança após a derrota eleitoral de 1995, mas renunciou poucos meses depois."
},
{
"nome": "Marcelo Rebelo de Sousa",
"periodo": "1996–1999",
"observacoes": "Marcou a oposição ao primeiro governo de Guterres. Atualmente, é Presidente da República de Portugal."
},
{
"nome": "José Manuel Durão Barroso",
"periodo": "1999–2004",
"observacoes": "Foi Primeiro-Ministro (2002-2004) antes de ser nomeado Presidente da Comissão Europeia."
},
{
"nome": "Pedro Santana Lopes",
"periodo": "2004–2005",
"observacoes": "Sucedeu a Barroso como Primeiro-Ministro (2004-2005). Convocou eleições antecipadas que ditaram a sua saída e derrota do PSD."
},
{
"nome": "Luís Marques Mendes",
"periodo": "2005–2007",
"observacoes": "Liderou a oposição após a derrota para José Sócrates. Renunciou ao cargo após uma derrota nas eleições autárquicas."
},
{
"nome": "Luís Filipe Menezes",
"periodo": "2007–2008",
"observacoes": "Alcançou um mandato curto. Renunciou após a derrota nas eleições legislativas intermédias para o círculo da Europa."
},
{
"nome": "Manuela Ferreira Leite",
"periodo": "2008–2010",
"observacoes": "Primeira (e única) mulher a liderar o PSD. Conduziu o partido à derrota nas eleições legislativas de 2009, mas travou o défice público."
},
{
"nome": "Pedro Passos Coelho",
"periodo": "2010–2018",
"observacoes": "Foi Primeiro-Ministro de Portugal (2011-2015), liderando o Governo da Troika e do período pós-ajustamento."
},
{
"nome": "Rui Rio",
"periodo": "2018–2022",
"observacoes": "Focou na moderação e no relançamento do partido na oposição. Deixou a liderança após a derrota nas legislativas de 2022."
},
{
"nome": "Luís Montenegro",
"periodo": "2022–presente",
"observacoes": "Atual presidente do PSD e Primeiro-Ministro de Portugal (desde março de 2024), liderando a coligação Aliança Democrática (AD)."
}
] # Lista de ordinais
ordinais = [
"1º", "2º", "3º", "4º", "5º",
"6º", "7º", "8º", "9º", "10º",
"11º", "12º", "13º", "14º", "15º",
"16º", "17º", "18º", "19º"
] # Função para mostrar informações
def mostrar_info():
escolhido = var.get()
resultado_texto.config(state=NORMAL)
resultado_texto.delete("1.0", END)
for i, item in enumerate(lideres_psd):
if escolhido.lower() in item["nome"].lower():
ordinal = ordinais[i] if i < len(ordinais) else f"{i+1}º"
resultado_texto.insert(END, f"{ordinal} Secretário-Geral: {item['nome']}\n")
resultado_texto.insert(END, f"Período: {item['periodo']}\n")
resultado_texto.insert(END, f"Observações: {item['observacoes']}\n")
resultado_texto.config(state=DISABLED)
return
resultado_texto.insert(END, "Informação não encontrada.")
resultado_texto.config(state=DISABLED) # Função para limpar resultado
def limpar():
resultado_texto.config(state=NORMAL)
resultado_texto.delete("1.0", END)
resultado_texto.config(state=DISABLED) # Configuração da janela
root = Tk()
root.geometry("800x400")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Líderes do Partido Social Democrata") # Títulos
titulo = Label(text="Líderes do Partido Social Democrata",
font=("Arial", 23, "bold"), bg="#103030", fg="#49e3e3")
titulo.place(relx=0.13, rely=0.05) texto_sub1 = Label(text="Escolha um líder:",
font=("Arial", 18, "bold"), bg="#103030", fg="#49e3e3")
texto_sub1.place(relx=0.15, rely=0.32) # Dropdown
var = StringVar()
dropDownList = [item["nome"] for item in lideres_psd]
dropdown = OptionMenu(root, var, *dropDownList)
var.set(dropDownList[0])
dropdown.place(relx=0.45, rely=0.32, relwidth=0.45)
dropdown.config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", 18, "bold"))
dropdown["menu"].config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", 18, "bold")) # Botões
but1 = Button(text="Mostrar", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=mostrar_info)
but1.place(relx=0.1, rely=0.55, 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.55, 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.55, relwidth=0.25, relheight=0.1) # Área de resultado com Scrollbar
resultado_frame = Frame(root)
resultado_frame.place(relx=0.05, rely=0.75, relwidth=0.9, relheight=0.2) scrollbar = Scrollbar(resultado_frame)
scrollbar.pack(side=RIGHT, fill=Y) resultado_texto = Text(resultado_frame, font=("Arial", 12, "bold"),
yscrollcommand=scrollbar.set, wrap=WORD, bg="#cfe2f3")
resultado_texto.pack(fill=BOTH, expand=True)
resultado_texto.config(state=DISABLED) scrollbar.config(command=resultado_texto.yview) root.mainloop()
0