Mundo em Python

Eleições Presidenciais em Portugal

from tkinter import *

eleicoes_presidenciais = {
1976: {"vencedor": "Ramalho Eanes", "vencedor_%": 61.59, "segundo_lugar": "Otelo Saraiva de Carvalho", "segundo_lugar_%": 16.46, "notas": "Vitória esmagadora pós-PREC."},
1980: {"vencedor": "Ramalho Eanes", "vencedor_%": 56.44, "segundo_lugar": "Soares Carneiro", "segundo_lugar_%": 40.23, "notas": "Eanes vence a AD (direita)."},
1986: {"vencedor": "Mário Soares", "vencedor_%": 51.18, "segundo_lugar": "Freitas do Amaral", "segundo_lugar_%": 48.82, "notas": "2.ª Volta (a mais renhida)."},
1991: {"vencedor": "Mário Soares", "vencedor_%": 70.35, "segundo_lugar": "Basílio Horta", "segundo_lugar_%": 14.16, "notas": "Recorde de votação num candidato."},
1996: {"vencedor": "Jorge Sampaio", "vencedor_%": 53.91, "segundo_lugar": "Cavaco Silva", "segundo_lugar_%": 46.09, "notas": "Vitória da esquerda unida."},
2001: {"vencedor": "Jorge Sampaio", "vencedor_%": 55.55, "segundo_lugar": "Ferreira do Amaral", "segundo_lugar_%": 34.68, "notas": "Reeleição tranquila."},
2006: {"vencedor": "Cavaco Silva", "vencedor_%": 50.54, "segundo_lugar": "Manuel Alegre", "segundo_lugar_%": 20.74, "notas": "Direita regressa a Belém."},
2011: {"vencedor": "Cavaco Silva", "vencedor_%": 52.95, "segundo_lugar": "Manuel Alegre", "segundo_lugar_%": 19.74, "notas": "Reeleição à 1.ª volta."},
2016: {"vencedor": "Marcelo R. Sousa", "vencedor_%": 52.00, "segundo_lugar": "Sampaio da Nóvoa", "segundo_lugar_%": 22.88, "notas": "O fenómeno dos 'afetos'."},
2021: {"vencedor": "Marcelo R. Sousa", "vencedor_%": 60.70, "segundo_lugar": "Ana Gomes", "segundo_lugar_%": 12.97, "notas": "André Ventura ficou em 3.º (11,9%)."},
2026: {"vencedor": "António José Seguro", "vencedor_%": 66.7, "segundo_lugar": "André Ventura", "segundo_lugar_%": 33.3, "notas": "Á segunda volta."}
} root = Tk()
root.geometry("700x400")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Eleições Presidenciais – Terceira República Portugal") titulo = Label(
text="Eleições Presidenciais",
font=("Arial", 28, "bold"),
bg="#103030",
fg="#49e3e3"
)
titulo.place(relx=0.18, rely=0.05) var = StringVar()
dropDownList = ["1976", "1980", "1986","1991","1996","2001","2006","2011","2016","2021","2026"] resultado_texto = Label(
text="",
font=("Arial", 12, "bold"),
bg="#cfe2f3",
justify=LEFT,
anchor="nw"
)
resultado_texto.place(relx=0.05, rely=0.45, relwidth=0.9, relheight=0.45) def app(ano_selecionado):
ano = int(ano_selecionado)
dados = eleicoes_presidenciais[ano]
texto = f"Ano: {ano}\n"
texto += f"Vencedor: {dados['vencedor']} ({dados['vencedor_%']}%)\n"
texto += f"2.º Lugar: {dados['segundo_lugar']} ({dados['segundo_lugar_%']}%)\n"
texto += f"Notas: {dados['notas']}"
resultado_texto.config(text=texto) dropdown = OptionMenu(root, var, *dropDownList, command=app)
var.set(dropDownList[0])
dropdown.place(relx=0.45, rely=0.25, relwidth=0.2)
dropdown.config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", 20, "bold"))
dropdown["menu"].config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", 20, "bold")) texto_sub1 = Label(
text="Ano:",
font=("Arial", 20, "bold"),
bg="#103030",
fg="#49e3e3"
)
texto_sub1.place(relx=0.25, rely=0.26) # Mostrar resultado inicial
app(dropDownList[0]) root.mainloop()
0