from tkinter import *
from tkinter import messagebox
presidentes = [
{"numero": 1, "nome": "Deodoro da Fonseca", "mandato": "1889-1891", "partido": "Nenhum"},
{"numero": 2, "nome": "Floriano Peixoto", "mandato": "1891-1894", "partido": "Nenhum"},
{"numero": 3, "nome": "Prudente de Morais", "mandato": "1894-1898", "partido": "Nenhum"},
{"numero": 4, "nome": "Campos Sales", "mandato": "1898-1902", "partido": "Nenhum"},
{"numero": 5, "nome": "Rodrigues Alves", "mandato": "1902-1906", "partido": "Nenhum"},
{"numero": 6, "nome": "Afonso Pena", "mandato": "1906-1909", "partido": "Nenhum"},
{"numero": 7, "nome": "Nilo Peçanha", "mandato": "1909-1910", "partido": "Nenhum"},
{"numero": 8, "nome": "Hermes da Fonseca", "mandato": "1910-1914", "partido": "Nenhum"},
{"numero": 9, "nome": "Venceslau Brás", "mandato": "1914-1918", "partido": "Nenhum"},
{"numero": 10, "nome": "Delfim Moreira", "mandato": "1918-1919", "partido": "Nenhum"},
{"numero": 11, "nome": "Epitácio Pessoa", "mandato": "1919-1922", "partido": "Nenhum"},
{"numero": 12, "nome": "Artur Bernardes", "mandato": "1922-1926", "partido": "Nenhum"},
{"numero": 13, "nome": "Washington Luís", "mandato": "1926-1930", "partido": "Nenhum"},
{"numero": 14, "nome": "Getúlio Vargas", "mandato": "1930-1945", "partido": "Nenhum"},
{"numero": 15, "nome": "José Linhares", "mandato": "1945-1946", "partido": "Nenhum"},
{"numero": 16, "nome": "Eurico Gaspar Dutra", "mandato": "1946-1951", "partido": "Nenhum"},
{"numero": 17, "nome": "Getúlio Vargas", "mandato": "1951-1954", "partido": "PTB"},
{"numero": 18, "nome": "Café Filho", "mandato": "1954-1955", "partido": "PSD"},
{"numero": 19, "nome": "Carlos Luz", "mandato": "1955", "partido": "PSD"},
{"numero": 20, "nome": "Nereu Ramos", "mandato": "1955-1956", "partido": "PSD"},
{"numero": 21, "nome": "Juscelino Kubitschek", "mandato": "1956-1961", "partido": "PSD"},
{"numero": 22, "nome": "Jânio Quadros", "mandato": "1961", "partido": "PTN"},
{"numero": 23, "nome": "Ranieri Mazzilli", "mandato": "1961", "partido": "Nenhum"},
{"numero": 24, "nome": "João Goulart", "mandato": "1961-1964", "partido": "PTB"},
{"numero": 25, "nome": "Ranieri Mazzilli", "mandato": "1964", "partido": "Nenhum"},
{"numero": 26, "nome": "Castelo Branco", "mandato": "1964-1967", "partido": "ARENA"},
{"numero": 27, "nome": "Costa e Silva", "mandato": "1967-1969", "partido": "ARENA"},
{"numero": 28, "nome": "Junta Militar", "mandato": "1969", "partido": "Nenhum"},
{"numero": 29, "nome": "Emílio Médici", "mandato": "1969-1974", "partido": "ARENA"},
{"numero": 30, "nome": "Ernesto Geisel", "mandato": "1974-1979", "partido": "ARENA"},
{"numero": 31, "nome": "João Figueiredo", "mandato": "1979-1985", "partido": "ARENA"},
{"numero": 32, "nome": "José Sarney", "mandato": "1985-1990", "partido": "PMDB"},
{"numero": 33, "nome": "Fernando Collor", "mandato": "1990-1992", "partido": "PRN"},
{"numero": 34, "nome": "Itamar Franco", "mandato": "1992-1995", "partido": "PMDB"},
{"numero": 35, "nome": "Fernando Henrique Cardoso", "mandato": "1995-2003", "partido": "PSDB"},
{"numero": 36, "nome": "Luiz Inácio Lula da Silva", "mandato": "2003-2011", "partido": "PT"},
{"numero": 37, "nome": "Dilma Rousseff", "mandato": "2011-2016", "partido": "PT"},
{"numero": 38, "nome": "Michel Temer", "mandato": "2016-2018", "partido": "MDB"},
{"numero": 39, "nome": "Jair Bolsonaro", "mandato": "2019-2023", "partido": "PL"},
{"numero": 40, "nome": "Luiz Inácio Lula da Silva", "mandato": "2023-presente", "partido": "PT"},
]
def limpar():
nome_presidente_entrada.delete(0, END)
numero_presidente_entrada.delete(0, END)
resultado_texto.config(text="")
def num_pres():
n = numero_presidente.get()
if not n.isdigit():
messagebox.showerror("Erro", "Por favor, insira um número válido!")
return
n = int(n)
if 1 <= n <= 40:
for presidente in presidentes:
if presidente["numero"] == n:
mensagem = f'Nº {presidente["numero"]}: {presidente["nome"]}\n' \
f'Mandato: {presidente["mandato"]}\nPartido: {presidente["partido"]}'
resultado_texto.config(text=mensagem)
return
messagebox.showinfo("Não encontrado", "Presidente não encontrado!")
else:
messagebox.showerror("Erro", "Número inválido! Insira um valor entre 1 e 40.")
def nome_pres():
nome = nome_presidente.get().strip().lower()
if not nome:
messagebox.showerror("Erro", "O campo de nome não pode estar vazio!")
return
for presidente in presidentes:
if presidente["nome"].lower() == nome:
mensagem = f'Nº {presidente["numero"]}: {presidente["nome"]}\n' \
f'Mandato: {presidente["mandato"]}\nPartido: {presidente["partido"]}'
resultado_texto.config(text=mensagem)
return
messagebox.showinfo("Não encontrado", "Nome do presidente não encontrado!")
# Configuração da interface gráfica
root = Tk()
root.geometry("800x400")
root.resizable(0, 0)
root.config(bg="#008000") # Fundo verde
root.title("Presidentes do Brasil")
# Elementos da interface
Label(root, text="Número do Presidente:", font=("Arial", 12), bg="#008000", fg="white").place(x=50, y=30)
numero_presidente = StringVar()
numero_presidente_entrada = Entry(root, textvariable=numero_presidente, font=("Arial", 12))
numero_presidente_entrada.place(x=250, y=30, width=200)
Label(root, text="Nome do Presidente:", font=("Arial", 12), bg="#008000", fg="white").place(x=50, y=80)
nome_presidente = StringVar()
nome_presidente_entrada = Entry(root, textvariable=nome_presidente, font=("Arial", 12))
nome_presidente_entrada.place(x=250, y=80, width=200)
Button(root, text="Buscar por Número", font=("Arial", 12), bg="#FFD700", fg="black", command=num_pres).place(x=550, y=25, width=200, height=40)
Button(root, text="Buscar por Nome", font=("Arial", 12), bg="#0000FF", fg="white", command=nome_pres).place(x=550, y=75, width=200, height=40)
Button(root, text="Limpar", font=("Arial", 12), bg="#FFD700", fg="black", command=limpar).place(x=200, y=130, width=100, height=40)
Button(root, text="Sair", font=("Arial", 12), bg="#FF4500", fg="white", command=root.quit).place(x=400, y=130, width=100, height=40)
resultado_texto = Label(root, text="", font=("Arial", 14), bg="white", fg="black", justify=LEFT, anchor="nw")
resultado_texto.place(x=50, y=200, width=700, height=150)
# Executar aplicação
root.mainloop()