Mundo em Python

Deputados Eleitos por Eleição

from tkinter import *

dados_eleicoes = {
"Eleições Legislativas de 1976": {
"PS": 107, "PPD": 73, "CDS": 42, "PCP": 40, "UDP": 1
},
"Eleições Legislativas de 1983": {
"PS": 101, "PPD": 75, "PCP": 44, "CDS": 30
},
"Eleições Legislativas de 1985": {
"PCP": 38, "PS": 57, "PSD": 88, "CDS": 22, "PRD": 45
},
"Eleições Legislativas de 1991": {
"PSD": 135, "PS": 72, "CDU (PCP-PEV)": 17, "CDS": 5, "PSN": 1
},
"Eleições Legislativas de 1995": {
"PS": 112, "PPD/PSD": 88, "CDU (PCP-PEV)": 15, "CDS-PP": 15
},
"Eleições Legislativas de 1999": {
"PS": 115, "PPD/PSD": 81, "CDU (PCP-PEV)": 17, "CDS-PP": 15, "BE": 2
},
"Eleições Legislativas de 2002": {
"PPD/PSD": 105, "PS": 96, "CDS-PP": 14, "CDU (PCP-PEV)": 12, "BE": 3
},
"Eleições Legislativas de 2005": {
"PS": 121, "PPD/PSD": 75, "CDU (PCP-PEV)": 14, "CDS-PP": 12, "BE": 8
},
"Eleições Legislativas de 2009": {
"PS": 97, "PPD/PSD": 81, "CDS-PP": 21, "BE": 16, "CDU (PCP-PEV)": 15
},
"Eleições Legislativas de 2011": {
"PPD/PSD": 108, "PS": 74, "CDS-PP": 24, "CDU (PCP-PEV)": 16, "BE": 8
},
"Eleições Legislativas de 2015": {
"PPD/PSD-CDS": 107, "PS": 86, "BE": 19, "CDU (PCP-PEV)": 17, "PAN": 1
},
"Eleições Legislativas de 2019": {
"PS": 108, "PSD": 79, "BE": 19, "CDU (PCP-PEV)": 12, "CDS-PP": 5, "PAN": 4, "CHEGA": 1, "IL": 1, "L": 1
},
"Eleições Legislativas de 2022": {
"PS": 120, "PSD": 72, "CH": 12, "IL": 8, "BE": 5, "CDU (PCP-PEV)": 6, "PAN": 1, "L": 1
},
"Eleições Legislativas de 2024 ": {
"AD": 80, "PS": 78, "CH": 50, "IL": 8, "BE": 5, "CDU (PCP-PEV)": 4, "L": 4, "PAN": 1
},
"Eleições Legislativas de 2025": {
"AD": 91, "PS": 58, "CH": 60, "IL": 9, "L": 6, "CDU (PCP-PEV)": 3, "BE": 1, "PAN": 1, "JPP": 1
}
} # Lista de eleições
Eleições_portugal = list(dados_eleicoes.keys()) # Janela principal
root = Tk()
root.geometry("750x600")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Deputados Eleitos por Eleição") # Título
titulo = Label(text="Deputados Eleitos por Eleição",
font=("Arial", 28, "bold"), bg="#103030", fg="#49e3e3")
titulo.place(relx=0.15, rely=0.05) # Subtítulo
texto_sub1 = Label(text="Escolha uma Eleição:",
font=("Arial", 18, "bold"), bg="#103030", fg="#49e3e3")
texto_sub1.place(relx=0.05, rely=0.26) # Dropdown
var = StringVar()
var.set(Eleições_portugal[0])
dropdown = OptionMenu(root, var, *Eleições_portugal)
dropdown.place(relx=0.45, rely=0.25, relwidth=0.5)
dropdown.config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", 18, "bold"))
dropdown["menu"].config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", 14)) # Frame do texto
frame_texto = Frame(root, bg="#cfe2f3")
frame_texto.place(relx=0.05, rely=0.6, relwidth=0.9, relheight=0.3) scrollbar = Scrollbar(frame_texto)
scrollbar.pack(side=RIGHT, fill=Y) resultado_texto = Text(frame_texto, wrap=WORD, font=("Arial", 14, "bold"),
bg="#cfe2f3", yscrollcommand=scrollbar.set)
resultado_texto.pack(side=LEFT, fill=BOTH, expand=True)
scrollbar.config(command=resultado_texto.yview)
resultado_texto.config(state=DISABLED) # Função atualizada: exibe dados + total de deputados
def mostrar_informacoes():
eleicao_selecionada = var.get()
deputados_por_partido = dados_eleicoes.get(eleicao_selecionada, {}) texto_a_exibir = f"Resultados para {eleicao_selecionada}:\n\n"
total_deputados = 0

if deputados_por_partido:
for partido, num_deputados in deputados_por_partido.items():
texto_a_exibir += f"{partido}: {num_deputados} deputados\n"
total_deputados += num_deputados
texto_a_exibir += f"\nTotal de deputados eleitos: {total_deputados}"
else:
texto_a_exibir += "Informação não disponível para esta eleição."

resultado_texto.config(state=NORMAL, bg="#cfe2f3")
resultado_texto.delete("1.0", END)
resultado_texto.insert(END, texto_a_exibir)
resultado_texto.config(state=DISABLED) btn_mostrar = Button(text="Mostrar Deputados", bd=2, bg='#107db2', fg='white',
font=('Verdana', 12, 'bold'), command=mostrar_informacoes)
btn_mostrar.place(relx=0.35, rely=0.45, relwidth=0.3, relheight=0.1) root.mainloop()
0