import tkinter as tk
from tkinter import messagebox
partidos = {
"PS": 58,
"PSD": 91,
"IL": 9,
"PCP": 3,
"BE": 1,
"PAN": 1,
"LIVRE": 6,
"CHEGA": 60
}
votacao_total_favor = 0
votacao_total_contra = 0
votacao_abstencao = 0
votos_registrados = {}
def votar(partido, voto):
global votacao_total_favor, votacao_total_contra, votacao_abstencao
if partido in votos_registrados:
messagebox.showwarning("Aviso", f"{partido} já votou.")
return
votos = partidos[partido]
if voto == "f":
votacao_total_favor += votos
elif voto == "c":
votacao_total_contra += votos
elif voto == "a":
votacao_abstencao += votos
votos_registrados[partido] = voto
botoes[partido]["f"].config(state="disabled")
botoes[partido]["c"].config(state="disabled")
botoes[partido]["a"].config(state="disabled")
if len(votos_registrados) == len(partidos):
mostrar_resultado()
def mostrar_resultado():
if votacao_total_favor >= 116 or votacao_total_favor > votacao_total_contra:
cor = "green"
msg = f"A proposta passou com {votacao_total_favor} a favor, {votacao_total_contra} contra e {votacao_abstencao} abstenção."
else:
cor = "red"
msg = f"A proposta foi chumbada com {votacao_total_favor} a favor, {votacao_total_contra} contra e {votacao_abstencao} abstenção."
resultado_label.config(text=msg, fg=cor)
def nova_votacao():
global votacao_total_favor, votacao_total_contra, votacao_abstencao, votos_registrados
votacao_total_favor = 0
votacao_total_contra = 0
votacao_abstencao = 0
votos_registrados = {}
resultado_label.config(text="")
for partido in botoes:
botoes[partido]["f"].config(state="normal")
botoes[partido]["c"].config(state="normal")
botoes[partido]["a"].config(state="normal")
# Janela principal
janela = tk.Tk()
janela.title("Simulação de Votação Legislativa")
janela.geometry("500x600")
tk.Label(janela, text="Simulação de Votação 2025", font=("Arial", 14, "bold")).pack(pady=10)
frame = tk.Frame(janela)
frame.pack(pady=10)
botoes = {}
for partido in partidos:
row = tk.Frame(frame)
row.pack(fill="x", padx=5, pady=2)
tk.Label(row, text=partido, width=10).pack(side="left")
botoes[partido] = {
"f": tk.Button(row, text="Favor", width=8, command=lambda p=partido: votar(p, "f")),
"c": tk.Button(row, text="Contra", width=8, command=lambda p=partido: votar(p, "c")),
"a": tk.Button(row, text="Abstenção", width=8, command=lambda p=partido: votar(p, "a")),
}
botoes[partido]["f"].pack(side="left", padx=2)
botoes[partido]["c"].pack(side="left", padx=2)
botoes[partido]["a"].pack(side="left", padx=2)
resultado_label = tk.Label(janela, text="", font=("Arial", 12, "bold"))
resultado_label.pack(pady=20)
btn_nova = tk.Button(janela, text="Nova Votação", font=("Arial", 10, "bold"), command=nova_votacao, bg="lightblue")
btn_nova.pack(pady=10)
janela.mainloop()
Comentários
Enviar um comentário