Mundo em Python

Patentes Forças Armadas Brasileiras

from tkinter import *

# Função para exibir o resumo baseado nas seleções
def app():
ramo = var.get() # Obtém o ramo selecionado
categoria = var1.get() # Obtém a categoria selecionada

# Dicionário com as patentes
patentes = {
"Exército Brasileiro": {
"Oficiais Generais": "Marechal\nGeneral de Exército\nGeneral de Divisão\nGeneral de Brigada",
"Oficiais Superiores e Intermediários": "Coronel\nTenente-Coronel\nMajor\nCapitão\nPrimeiro-Tenente\nSegundo-Tenente",
"Praças": "Subtenente\nPrimeiro-Sargento\nSegundo-Sargento\nTerceiro-Sargento\nCabo\nSoldado"
},
"Marinha do Brasil": {
"Oficiais Generais": "Almirante\nAlmirante de Esquadra\nVice-Almirante\nContra-Almirante",
"Oficiais Superiores e Intermediários": "Capitão de Mar e Guerra\nCapitão de Fragata\nCapitão-Tenente\nPrimeiro-Tenente\nSegundo-Tenente",
"Praças": "Suboficial\nPrimeiro-Sargento\nSegundo-Sargento\nTerceiro-Sargento\nCabo\nMarinheiro"
},
"Força Aérea Brasileira (FAB)": {
"Oficiais Generais": "Marechal do Ar\nTenente-Brigadeiro do Ar\nMajor-Brigadeiro\nBrigadeiro",
"Oficiais Superiores e Intermediários": "Coronel\nTenente-Coronel\nMajor\nCapitão\nPrimeiro-Tenente\nSegundo-Tenente",
"Praças": "Suboficial\nPrimeiro-Sargento\nSegundo-Sargento\nTerceiro-Sargento\nCabo\nSoldado"
}
} # Obtém o resumo da patente com base na escolha
resumo = patentes.get(ramo, {}).get(categoria, "Patente não encontrada") # Limpa o conteúdo da caixa de texto antes de inserir novo conteúdo
resultado_texto.delete(1.0, END)
# Insere o novo resumo no campo de texto
resultado_texto.insert(END, f"{ramo} - {categoria}:\n{resumo}") # Criação da janela principal
root = Tk()
root.geometry("600x600") # Aumentando a altura da janela
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Patentes Forças Armadas Brasileiras") # Título
titulo = Label(text="Patentes Forças Armadas Brasileiras",
font=("Arial", "19", "bold"), bg="#103030", fg="#49e3e3")
titulo.place(relx=0.05, rely=0.05) # Subtítulo "Ramo"
texto_sub1 = Label(text="Ramo",
font=("Arial", "20", "bold"), bg="#103030", fg="#49e3e3")
texto_sub1.place(relx=0.45, rely=0.15) # Menu suspenso para selecionar o ramo
var = StringVar()
dropDownList = ["Exército Brasileiro", "Marinha do Brasil", "Força Aérea Brasileira (FAB)"]
dropdown = OptionMenu(root, var, *dropDownList)
dropdown.config(font=("Arial", "15", "bold"), bg="#49e3e3", fg="#103030")
var.set(dropDownList[0])
dropdown.place(relx=0.05, rely=0.25, relwidth=0.9)
dropdown["menu"].config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", "15", "bold")) # Subtítulo "Resumo das Patentes"
texto_sub1 = Label(text="Resumo das Patentes",
font=("Arial", "20", "bold"), bg="#103030", fg="#49e3e3")
texto_sub1.place(relx=0.25, rely=0.35) # Menu suspenso para selecionar a categoria de patente
var1 = StringVar()
dropDownList1 = ["Oficiais Generais", "Oficiais Superiores e Intermediários", "Praças"]
dropdown1 = OptionMenu(root, var1, *dropDownList1)
dropdown1.config(font=("Arial", "15", "bold"), bg="#49e3e3", fg="#103030")
var1.set(dropDownList1[0])
dropdown1.place(relx=0.05, rely=0.45, relwidth=0.9)
dropdown1["menu"].config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", "15", "bold")) # Botão "Mostrar"
but1 = Button(text="Mostrar", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=app)
but1.place(relx=0.1, rely=0.65, relwidth=0.25, relheight=0.1) # Botão "Sair"
but_sair = Button(text="Sair", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=root.destroy)
but_sair.place(relx=0.4, rely=0.65, relwidth=0.25, relheight=0.1) # Área de exibição do resultado com barra de rolagem
frame_resultado = Frame(root)
frame_resultado.place(relx=0.05, rely=0.8, relwidth=0.9, relheight=0.15) # Adiciona uma barra de rolagem ao campo de texto
scrollbar = Scrollbar(frame_resultado)
scrollbar.pack(side=RIGHT, fill=Y) resultado_texto = Text(frame_resultado, wrap=WORD, yscrollcommand=scrollbar.set, font=("Arial", 12, "bold"), bg="#cfe2f3")
resultado_texto.pack(side=LEFT, fill=BOTH, expand=True) scrollbar.config(command=resultado_texto.yview) # Inicialização da janela
root.mainloop()
0