Mundo em Python

Secretário-Geral do Partido Comunista Português (PCP)

from tkinter import *

# Dados dos secretários-gerais
pcp_secretarios_gerais = [
{"nome": "José Carlos Rates", "periodo": "1923–1929",
"observacoes": "Primeiro secretário-geral do PCP; ajudou a consolidar o partido após a sua fundação em 1921."},
{"nome": "Bento António Gonçalves", "periodo": "1929–1942",
"observacoes": "Reorganizou o PCP na clandestinidade; preso e morto no Campo do Tarrafal."},
{"nome": "Júlio Fogaça", "periodo": "1943–1949",
"observacoes": "Membro destacado da direção; após 1949 o PCP passou a ser dirigido coletivamente, sem secretário-geral formal."},
{"nome": "Direção coletiva (sem secretário-geral)", "periodo": "1949–1961",
"observacoes": "Após a prisão de vários dirigentes, o partido foi conduzido por um Secretariado coletivo clandestino."},
{"nome": "Álvaro Cunhal", "periodo": "1961–1992",
"observacoes": "Formalmente eleito secretário-geral em 1961; liderou o PCP até depois da Revolução de Abril (1974) e na democracia."},
{"nome": "Carlos Carvalhas", "periodo": "1992–2004",
"observacoes": "Economista; sucedeu Cunhal, mantendo a linha marxista-leninista tradicional."},
{"nome": "Jerónimo de Sousa", "periodo": "2004–2022",
"observacoes": "Operário metalúrgico e histórico dirigente sindical; reforçou o papel do PCP nas lutas sociais."},
{"nome": "Paulo Raimundo", "periodo": "2022–presente",
"observacoes": "Atual secretário-geral; representa uma geração mais jovem de comunistas portugueses."}
] # Lista de ordinais
ordinais = ["Primeiro", "Segundo", "Terceiro", "Quarto", "Quinto", "Sexto", "Sétimo", "Oitavo"] # Função para exibir informações
def mostrar_info():
escolhido = var.get()
resultado_texto.config(state=NORMAL)
resultado_texto.delete("1.0", END)
for i, item in enumerate(pcp_secretarios_gerais):
if escolhido in item["nome"]:
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 o 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("Secretário-Geral do Partido Comunista Português") # Títulos
titulo = Label(text="Secretário-Geral do Partido Comunista Português",
font=("Arial", 23, "bold"), bg="#103030", fg="#49e3e3")
titulo.place(relx=0.03, rely=0.05) texto_sub1 = Label(text="Escolha a opção:",
font=("Arial", 18, "bold"), bg="#103030", fg="#49e3e3")
texto_sub1.place(relx=0.15, rely=0.32) # Dropdown
var = StringVar()
dropDownList = ["José Carlos Rates", "Bento António Gonçalves", "Júlio Fogaça",
"Direção coletiva", "Álvaro Cunhal", "Carlos Carvalhas",
"Jerónimo de Sousa", "Paulo Raimundo"]
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.65, 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.65, 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.65, relwidth=0.25, relheight=0.1) # Área de resultado com Scrollbar
resultado_frame = Frame(root)
resultado_frame.place(relx=0.05, rely=0.8, relwidth=0.9, relheight=0.15) 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