from tkinter import *
# -------- Dicionário --------
exercito_romano = {
"Legião (Legio)": {
"tipo": "Unidade principal",
"soldados": "4000–6000 (cidadãos romanos)",
"comando": "Legado",
"composição": [
"Infantaria pesada",
"Engenheiros",
"Médicos"
],
"reformas associadas": [
"Júlio César",
"Augusto"
],
"características": [
"Treinamento rigoroso",
"Equipamento padronizado",
"Alta disciplina",
"Capacidade de construir acampamentos e fortificações"
]
},
"Coorte (Cohors)": {
"tipo": "Subdivisão da legião",
"quantidade por legião": 10,
"soldados por unidade": "≈480 (1ª coorte maior)",
"função": [
"Unidade tática básica em batalha",
"Mais flexível que formações antigas"
]
},
"Centúria (Centuria)": {
"tipo": "Subdivisão da coorte",
"soldados": "≈80",
"liderança": "Centurião",
"características": [
"Forte disciplina",
"Comando direto",
"Base da organização diária e combate"
]
},
"Contubérnio (Contubernium)": {
"tipo": "Menor unidade",
"soldados": 8,
"vida cotidiana": [
"Compartilhavam tenda",
"Dividiam tarefas"
],
"função": [
"Logística",
"Cooperação entre soldados"
]
},
"Auxilia": {
"descrição": "Tropas auxiliares não cidadãs",
"especialidades": [
"Cavalaria",
"Arqueiros",
"Especialistas"
],
"benefício": "Cidadania após serviço"
},
"Cavalaria legionária": {
"função": [
"Apoio",
"Reconhecimento"
]
}
}
# -------- Interface --------
root = Tk()
root.geometry("700x400")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Divisão do exército romano")
titulo = Label(
root,
text="Divisão do exército romano",
font=("Arial", 28, "bold"),
bg="#103030",
fg="#49e3e3"
)
titulo.place(relx=0.13, rely=0.05)
var = StringVar()
dropDownList = list(exercito_romano.keys())
# -------- Área com Scroll --------
frame_texto = Frame(root)
frame_texto.place(relx=0.05, rely=0.5, relwidth=0.9, relheight=0.45)
scroll = Scrollbar(frame_texto)
scroll.pack(side=RIGHT, fill=Y)
resultado_texto = Text(
frame_texto,
font=("Arial", 12, "bold"),
bg="#cfe2f3",
wrap=WORD,
yscrollcommand=scroll.set
)
resultado_texto.pack(side=LEFT, fill=BOTH, expand=True)
scroll.config(command=resultado_texto.yview)
# -------- Função --------
def app(escolha):
dados = exercito_romano[escolha]
texto = f"{escolha}\n\n"
for chave, valor in dados.items():
texto += f"{chave}:\n"
if isinstance(valor, list):
for item in valor:
texto += f" • {item}\n"
else:
texto += f" {valor}\n"
texto += "\n"
resultado_texto.delete("1.0", END)
resultado_texto.insert(END, texto)
# -------- Dropdown --------
dropdown = OptionMenu(root, var, *dropDownList, command=app)
var.set(dropDownList[0])
dropdown.place(relx=0.08, rely=0.25, relwidth=0.9)
dropdown.config(
background='#09A3BA',
foreground="#FFFFFF",
font=("Arial", 20, "bold")
)
dropdown["menu"].config(
background='#09A3BA',
foreground="#FFFFFF",
font=("Arial", 20, "bold")
)
app(dropDownList[0])
root.mainloop()