Mundo em Python

Dicionário Militar

from tkinter import *


exercito_portugues = {
"Infantaria": {
"Definição": "Arma base do Exército, composta por forças que combatem predominantemente a pé, com o objetivo de conquistar, ocupar e manter o terreno.",
"Funções": [
"Executar ações ofensivas e defensivas",
"Proteger infraestruturas e áreas sensíveis",
"Realizar operações de combate próximo"
],
"Meios": [
"Armamento ligeiro e coletivo",
"Viaturas táticas",
"Sistemas portáteis de armas de apoio"
],
"Lema": "Sempre Prontos"
},

"Cavalaria": {
"Definição": "Arma de combate caracterizada pela elevada mobilidade, rapidez e capacidade de manobra.",
"Funções": [
"Reconhecimento e segurança",
"Exploração de êxitos táticos",
"Ações de choque e manobra rápida"
],
"Meios": [
"Viaturas blindadas de reconhecimento e combate",
"Viaturas de transporte de pessoal",
"Armamento pesado"
],
"Lema": "Audácia, Rapidez e Fogo"
},

"Artilharia": {
"Definição": "Arma de apoio de fogo indireto, destinada a destruir, neutralizar ou desorganizar forças inimigas a grandes distâncias.",
"Subdivisões": ["Artilharia de Campanha", "Artilharia Antiaérea"],
"Funções": [
"Apoiar forças terrestres com fogos indiretos",
"Garantir a defesa contra ameaças aéreas"
],
"Meios": [
"Peças de artilharia rebocadas ou autopropulsadas",
"Sistemas de radar",
"Mísseis e foguetes"
],
"Lema": "Pela Força do Fogo"
},

"Engenharia": {
"Definição": "Arma técnico-operacional que assegura o apoio de combate em termos de mobilidade, contramobilidade e sobrevivência.",
"Funções": [
"Construção e destruição de infraestruturas",
"Abertura e melhoria de itinerários",
"Desminagem e demolições"
],
"Meios": [
"Máquinas de engenharia",
"Viaturas de apoio",
"Equipamentos de construção"
],
"Lema": "Por Terra e Ferro"
},

"Transmissões": {
"Definição": "Arma que assegura as comunicações e sistemas de informação das forças terrestres.",
"Funções": [
"Garantir o comando, controlo e coordenação",
"Operar redes de comunicações seguras",
"Apoiar sistemas de guerra eletrónica e ciberdefesa"
],
"Meios": [
"Estações de rádio e satélite",
"Redes informáticas e sistemas criptográficas"
],
"Lema": "Comunicar para Vencer"
},

"Material e Transportes": {
"Definição": "Serviço logístico responsável pela manutenção, abastecimento e transporte de materiais e equipamentos.",
"Funções": [
"Apoiar o movimento e sustentação das forças",
"Executar reparações e revisões de material",
"Gerir armazéns e centros logísticos"
],
"Meios": [
"Oficinas móveis",
"Viaturas pesadas",
"Equipamentos de carga"
],
"Lema": "Sempre a Servir"
},

"Administração Militar": {
"Definição": "Serviço responsável pela gestão administrativa, financeira e de intendência do Exército.",
"Funções": [
"Apoiar o comando em matérias de contabilidade e orçamento",
"Aprovisionamento de víveres, fardamento e material",
"Gestão de recursos humanos e administrativos"
],
"Lema": "Eficiência e Disciplina"
},

"Saúde Militar": {
"Definição": "Serviço de apoio logístico destinado a garantir a assistência médica, sanitária e psicológica das forças.",
"Funções": [
"Prestar cuidados médicos em campanha",
"Evacuar e tratar feridos",
"Executar medicina preventiva e controlo sanitário"
],
"Meios": [
"Postos de socorro",
"Ambulâncias táticas",
"Hospitais de campanha"
],
"Lema": "Servir com Vida"
},

"Polícia do Exército": {
"Definição": "Unidade especializada com competências de natureza policial no âmbito das Forças Armadas.",
"Funções": [
"Manutenção da ordem e disciplina militar",
"Segurança de instalações e autoridades",
"Regulação de trânsito militar e investigação de ilícitos"
],
"Meios": [
"Viaturas ligeiras",
"Equipamentos de intervenção",
"Sistemas de comunicações táticas"
],
"Lema": "Honra, Dever e Justiça"
}
}

def mostrar_informacao():
arma = var.get()
info = exercito_portugues[arma] texto = f"=== {arma.upper()} ===\n\n"

for chave, valor in info.items():
if isinstance(valor, list):
texto += f"{chave}:\n"
for item in valor:
texto += f" - {item}\n"
else:
texto += f"{chave}: {valor}\n"
texto += "\n"

texto_resultado.config(state="normal")
texto_resultado.delete(1.0, END)
texto_resultado.insert(END, texto)
texto_resultado.config(state="disabled")
# ==========================
# INTERFACE TKINTER
# ==========================

root = Tk()
root.geometry("900x600")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Básico de Armas do Exército") titulo = Label(
text="Básico de Armas do Exército",
font=("Arial", 28, "bold"),
bg="#103030",
fg="#49e3e3"
)
titulo.pack(pady=20) texto_sub1 = Label(
text="Escolha uma Arma ou Serviço:",
font=("Arial", 20, "bold"),
bg="#103030",
fg="#49e3e3"
)
texto_sub1.pack(pady=10) var = StringVar()
var.set("Infantaria") dropdown = OptionMenu(root, var, *exercito_portugues.keys())
dropdown.config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", 18, "bold"))
dropdown["menu"].config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", 16, "bold"))
dropdown.pack(pady=10) botao = Button(
root,
text="Mostrar Informação",
font=("Arial", 18, "bold"),
bg="#1cb5a3",
fg="white",
command=mostrar_informacao
)
botao.pack(pady=15) # Caixa de texto com scroll
frame_texto = Frame(root)
frame_texto.pack(pady=20, fill=BOTH, expand=True) scroll = Scrollbar(frame_texto)
scroll.pack(side=RIGHT, fill=Y) texto_resultado = Text(
frame_texto,
font=("Arial", 14),
bg="#e6f7ff",
wrap="word",
yscrollcommand=scroll.set,
state="disabled"
)
texto_resultado.pack(fill=BOTH, expand=True) scroll.config(command=texto_resultado.yview) root.mainloop()
0