Mundo em Python

Lista de Reis de Portugal

from tkinter import *

def atualizar_reis(dinastia):
dropDownList1 = []
if dinastia == 'Dinastia de Borgonha':
dropDownList1 = [
("Afonso I", "1139-1185", "O Conquistador",
"Primeiro Rei de Portugal, consolidou a independência do país\n e iniciou a conquista de terras aos mouros.",
"\nConquista de Santarém, Batalha de Ourique."),
("Sancho I", "1185-1211", "O Povoador",
"Focado em repovoar e colonizar as terras do reino,\n especialmente na região do Alentejo.",
"Promoção de novas povoações, Reflorestamento."),
("Afonso II", "1211-1223", "O Gordo",
"Rei que enfrentou conflitos internos com a nobreza,\n resultando na sua deposição.",
"Enfrentou a nobreza, Depositado após revoltas."),
("Sancho II", "1223-1248", "O Capelo",
"Rei que foi deposto devido ao seu governo fraco e\n falta de apoio popular.",
"Deposto em 1248, Guerra com a nobreza."),
("Afonso III", "1248-1279", "O Bolonhês",
"Rei que consolidou o Reino de Portugal e\n expandiu os domínios no sul.",
"Conquista do Algarve."),
("Dinis I", "1279-1325", "O Lavrador",
"Rei conhecido pelo seu foco na agricultura e na diplomacia,\n fundando muitas vilas e cidades.",
"Fundações de vilas, incentivo ao plantio de vinhedos."),
("Afonso IV", "1325-1357", "O Bravo",
"Rei que teve um governo turbulento, com conflitos\n com a nobreza e eventos marcantes.",
"Batalha de Rio Salado."),
("Pedro I", "1357-1367", "O Justiceiro",
"Rei famoso por sua busca incessante pela justiça,\n mas também por suas paixões intensas.",
"Guerra com Castela, Enfrentou revoltas internas."),
("Fernando I", "1367-1383", "O Formoso",
"Rei que teve um reinado marcado por\n disputas internas e dificuldades financeiras.",
"Enfrentou o conflito com Castela, Morte prematura."),
]
elif dinastia == 'Dinastia de Avis':
dropDownList1 = [
("João I", "1385-1433", "O de Boa Memória",
"Fundador da Dinastia de Avis, estabeleceu uma base sólida\n para o Reino de Portugal.",
"Batalha de Aljubarrota,\n Estabelecimento de novas relações comerciais."),
("Duarte I", "1433-1438", "O Eloquente",
"Rei que ficou conhecido pela sua sabedoria\n e habilidades oratórias.",
"Enfrentou problemas internos e\n externos durante seu curto reinado."),
("Afonso V", "1438-1481", "O Africano",
"Rei focado na expansão das possessões\n portuguesas na África.",
"Conquista de Ceuta, Expansão colonial."),
("João II", "1481-1495", "O Príncipe Perfeito",
"Rei que foi crucial na consolidação\n do poder real em Portugal.",
"Redução do poder da nobreza, Expansão da exploração ultramarina."),
("Manuel I", "1495-1521", "O Venturoso",
"Durante seu reinado, Portugal atingiu\n seu ápice no comércio e nas explorações.",
"Descobrimentos no Oriente,\n Expansão territorial."),
("João III", "1521-1557", "O Piedoso",
"Rei devoto, focou na moralidade e na promoção\n da religião católica em Portugal.",
"Reformas religiosas,\n Início das relações com o Brasil."),
("Sebastião I", "1557-1578", "O Desejado",
"Rei jovem, que desapareceu em batalha e\n deixou um vazio de poder em Portugal.",
"Batalha de Alcáçquibir,\n Desaparecimento misterioso."),
("Henrique I", "1578-1580", "O Casto",
"Rei que não teve descendentes e cujo reinado\n"
" foi marcado pela crise de sucessão.",
"Falecimento sem herdeiros diretos."),
]
elif dinastia == 'Dinastia Filipina':
dropDownList1 = [
("Filipe I", "1580-1598", "O Prudente",
"Rei espanhol que uniu os reinos ibéricos sob sua coroa,\n resultando em um período de conflitos.",
"Guerra com a França, União Ibérica."),
("Filipe II", "1598-1621", "O Piedoso",
"Rei que manteve o domínio espanhol sobre Portugal\n e tentou consolidar o império.",
"Guerra com a Inglaterra, Crise de sucessão."),
("Filipe III", "1621-1665", "O Grande",
"Rei que manteve os territórios da União Ibérica,\n mas enfrentou dificuldades econômicas.",
"Guerra dos Trinta Anos, Crises internas."),
]
elif dinastia == 'Dinastia de Bragança':
dropDownList1 = [
("João IV", "1640-1656", "O Restaurador",
"Rei que restaurou a independência\n de Portugal após a União Ibérica.",
"Restauração da Independência, Guerra da Restauração."),
("Afonso VI", "1656-1683", "O Vitorioso",
"Rei que enfrentou desafios internos e\n perdeu a coroa devido a uma crise de saúde.",
"Perda de poder devido a doenças."),
("Pedro II", "1683-1706", "O Pacífico",
"Rei que trouxe estabilidade após\n um período turbulento.",
"Reformas políticas e administrativas."),
("João V", "1706-1750", "O Magnânimo",
"Rei conhecido pela sua generosidade\n e pela construção de grandes obras públicas.",
"Reformas culturais e apoio ao barroco."),
("José I", "1750-1777", "O Reformador",
"Rei que implementou várias reformas\n econômicas e políticas.",
"Reformas iluministas, Expansão da cultura."),
("Maria I", "1777-1816", "A Piedosa",
"Primeira mulher a governar Portugal,\n com foco na moralidade pública.",
"Reformas religiosas, Reinado conturbado."),
("João VI", "1816-1826", "O Clemente",
"Rei que governou durante a invasão napoleónica\n e a transferência da corte portuguesa para o Brasil.",
"Guerras Napoleónicas,\n Transferência da corte para o Brasil."),
("Pedro IV", "1826", "O Libertador",
"Rei que também foi imperador do Brasil\ne teve um papel importante na independência brasileira.",
"Independência do Brasil,\n Abolição da monarquia em Portugal."),
("Miguel I", "1828-1834", "O Absolutista",
"Rei absolutista que foi deposto após a guerra civil com os liberais.",
"Guerra Civil Portuguesa, Deposição."),
("Maria II", "1834-1853", "A Educadora",
"Rei constitucional que focou na educação e modernização do país.",
"Reformas educacionais, Instituição da monarquia constitucional."),
("Pedro V", "1853-1861", "O Esperançoso",
"Rei muito admirado pelo seu caráter e reformas.",
"Melhorias na saúde pública e infraestrutura."),
("Luís I", "1861-1889", "O Popular",
"Rei que buscou modernizar Portugal,\n promovendo a cultura e as artes.",
"Investimentos em cultura e infraestrutura."),
("Carlos I", "1889-1908", "O Martirizado",
"Rei que foi assassinado em 1908,\n após uma tentativa de reforma política.",
"Revolta e assassinato."),
("Manuel II", "1908-1910", "O Patriota",
"Último rei de Portugal, deposto após a\n revolução republicana.",
"Queda da monarquia, Revolução de 1910."),
] menu = dropdown1["menu"]
menu.delete(0, "end")
for rei, data, cognome, descricao, eventos in dropDownList1:
menu.add_command(label=rei,
command=lambda value=rei, data=data, cognome=cognome, descricao=descricao, eventos=eventos: exibir_info(value, data, cognome, descricao, eventos))
if dropDownList1:
var1.set(dropDownList1[0][0])
else:
var1.set("")
def exibir_info(rei, data, cognome, descricao, eventos):
mensagem = f"Reinado: {data}\nCognome: {cognome}\nDescrição: {descricao}\nEventos marcantes: {eventos}"
resultado_texto.config(state=NORMAL)
resultado_texto.delete(1.0, END)
resultado_texto.insert(END, mensagem)
resultado_texto.config(state=DISABLED) root = Tk()
root.geometry("700x400")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Lista de Reis de Portugal") titulo = Label(text="Lista de Reis de Portugal", font=("Arial", "28", "bold"), bg="#103030", fg="#49e3e3")
titulo.place(relx=0.15, rely=0.05) texto_sub1 = Label(text="Dinastias", font=("Arial", "18", "bold"), bg="#103030", fg="#49e3e3")
texto_sub1.place(relx=0.15, rely=0.18) texto_sub2 = Label(text="Reinado de:", font=("Arial", "18", "bold"), bg="#103030", fg="#49e3e3")
texto_sub2.place(relx=0.6, rely=0.18) var = StringVar()
var.set("Dinastia de Borgonha")
dropDownList = ["Dinastia de Borgonha", "Dinastia de Avis", "Dinastia Filipina", "Dinastia de Bragança"]
dropdown = OptionMenu(root, var, *dropDownList, command=atualizar_reis)
dropdown.place(relx=0.1, rely=0.3, relwidth=0.35, relheight=0.1)
dropdown.config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", "12", "bold"))
dropdown["menu"].config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", "12", "bold")) # Segundo menu suspenso (Reis)
var1 = StringVar()
var1.set("")
dropdown1 = OptionMenu(root, var1, "")
dropdown1.place(relx=0.6, rely=0.3, relwidth=0.35, relheight=0.1)
dropdown1.config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", "12", "bold"))
dropdown1["menu"].config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", "12", "bold")) atualizar_reis(var.get())
resultado_texto = Text(root, wrap=WORD, font=("Arial", 12, "bold"), bg="#cfe2f3", height=10, width=70, padx=10, pady=10)
resultado_texto.place(relx=0.05, rely=0.5, relwidth=0.9, relheight=0.45)
resultado_texto.config(state=DISABLED) root.mainloop()
0