Gerador Menu. AVISO: A biblioteca só funciona corretamente com as versões 2.6 ou superiores ou 3.0 ou superiores.



Documentos relacionados
Dicas para usar melhor o Word 2007

Microsoft Office PowerPoint 2007

Vamos criar uma nova Página chamada Serviços. Clique em Adicionar Nova.

Procedimentos para Reinstalação do Sisloc

CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS

COMO INSTALAR O CATÁLOGO

02 - Usando o SiteMaster - Informações importantes

Vamos criar uma nova Página chamada Serviços. Clique em Adicionar Nova.

Sistema de Recursos Humanos

Tutorial MSN Messenger

Manual de configuração do sistema

Mini-curso Informática Básica

Sumário 1. SOBRE O NFGoiana DESKTOP Apresentação Informações do sistema Acessando o NFGoiana Desktop

Procedimentos para Instalação do Sisloc

Microsoft Access XP Módulo Um

ANDRÉ APARECIDO DA SILVA APOSTILA BÁSICA SOBRE O POWERPOINT 2007

Guia de Início Rápido

Despachante Express - Software para o despachante documentalista veicular DESPACHANTE EXPRESS MANUAL DO USUÁRIO VERSÃO 1.1

Manual do usuário. Softcall Java. versão 1.0.5

Manual para conversão de Teses e Dissertações em PDF

Revisão: Introdução. - Integração com o AutoManager; 1 Atualização de versão do banco de dados PostgreSQL

GUIA MUDANÇA E FORMATAÇÃO DE SERVIDOR - MILLENNIUM

Microsoft Office Outlook Web Access ABYARAIMOVEIS.COM.BR

Pesquisa e organização de informação

GUIA MUDANÇA E FORMATAÇÃO DE SERVIDOR - SLIM

MANUAL BACKUP XDENTAL 2012

B O P E P O TUTORIAL DE PERSONALIZAÇÃO ADICIONANDO IMAGENS E TEXTO ESTÁTICO

Procedimentos para Instalação do SISLOC

Veja abaixo um exemplo de como os dados são mostrados quando usamos o

Evandro sistemas comerciais e web.

Emissão de Cupons Fiscais usando ECF-IF

Manual de Instalação e Utilização

SuperStore Sistema para Gestão de Óticas. MANUAL DO USUÁRIO (Ordem de Serviço)

Smart Laudos 1.9. A Forma Inteligente de Criar seus Laudos Médicos. Manual do Usuário

Iniciação à Informática

Manual Administrador - Mídia System

Gerencie a sala de espera e garanta a satisfação dos pacientes

Este tutorial está publicado originalmente em

Informática Básica. Microsoft Word XP, 2003 e 2007

Manual do Visualizador NF e KEY BEST

Manual de Administração DPS Printer 2.1 NDDigital S/A - Software

Tutorial USERADM Como inserir conteúdo no Portal Transparência

EXEMPLO DE COMO FAZER UMA MALA DIRETA

Gerenciamento de Arquivos e Pastas. Professor: Jeferson Machado Cordini jmcordini@hotmail.com

Status. Barra de Título. Barra de Menu. Barra de. Ferramentas Padrão. Caixa de nomes. Barra de. Ferramentas de Formatação. Indicadores de Coluna

Aula Au 3 la 7 Windows-Internet

Barra de ferramentas padrão. Barra de formatação. Barra de desenho Painel de Tarefas

Versão 8.2C-01. Versão Final da Apostila de Novidades

Universidade Federal de Santa Maria UFSM Centro de Tecnologia CT. Power Point. Básico

Identificando o Buddy VS/XP Lite e Premium

Menus Personalizados

Instalação: permite baixar o pacote de instalação do agente de coleta do sistema.

GUIA INTEGRA SERVICES E STATUS MONITOR

MANUAL DE INSTALAÇÃO E CONFIGURAÇÃO. Motor Periférico Versão 8.0

Introdução. Servidor de Tempo (SNTP) com opção de horário de verão automático; 1 Cadastro do novo modelo de equipamento Urano Topmax SS

Acif Sistema de Recuperação de Crédito

CRIANDO BANCOS DE DADOS NO SQL SERVER 2008 R2 COM O SQL SERVER MANAGEMENT STUDIO

CRIANDO TEMPLATES E LEGENDAS

Lógica de Programação

Aula 01 - Formatações prontas e condicionais. Aula 01 - Formatações prontas e condicionais. Sumário. Formatar como Tabela

Manual das planilhas de Obras

Manual do Plone (novo portal do IFCE)

Follow-Up Acompanhamento Eletrônico de Processos (versão 3.0) Manual do Sistema. 1. Como acessar o sistema Requisitos mínimos e compatibilidade

DPAlmox - Windows MANUAL DO USUÁRIO

Serviço Técnico de Informática. Curso Básico de PowerPoint

ALBUM DE FOTOGRAFIAS NO POWER POINT

Conteúdo Store manager... 2

Word 1 - Introdução Principais recursos do word A janela de documento Tela principal

Sistema de Chamados Protega

SuperStore. Sistema para Automação de Óticas. MANUAL DO USUÁRIO (Módulo Estoque)

Criando Banco de Dados, Tabelas e Campos através do HeidiSQL. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

Guia de boas práticas para realização de Backup

Planejando o aplicativo

Sumário. Computação Gráfica Illustrator

Manual de utilização do sistema Diagnose. Marcus Vinícius Benedito. 10 de maio de 2007

MANUAL DO CVCONT/ SPED PIS COFINS. Recomendamos que este manual seja impresso para futuras consultas, devido à sua importância.

Excel Planilhas Eletrônicas

Manual das planilhas de Obras v2.5

O WINDOWS 98 é um sistema operacional gráfico, multitarefa, produzido pela Microsoft.

Sistema Operacional Unidade 8.2 Instalação de aplicativos. QI ESCOLAS E FACULDADES Curso Técnico em Informática

LINGUAGEM C UMA INTRODUÇÃO

Instalação rápida do Expresso

Gerenciamento e Captura de Cheques - Sistec. Manual de Instalação e Importação ÍNDICE 1.INSTALAÇÃO Instalando o programa

Lazarus pelo SVN Linux/Windows

INTRODUÇÃO AO WINDOWS

Questão Essência do Excel

Manual Comunica S_Line

Manual Simulador de Loja

1) MANUAL DO INTEGRADOR Este documento, destinado aos instaladores do sistema, com informações de configuração.

Manual de Instalação. SafeSign Standard (Para MAC OS 10.7)

Eberhardt Comércio e Assist. Técnica. Ltda.

Manual de Instalação

Instalação de Impressora

Universidade Federal do Mato Grosso - STI-CAE. Índice

Manual Instalação Pedido Eletrônico

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource Rev: 02

Manual de Utilização. Site Manager. Tecnologia ao serviço do Mundo Rural

Manual Integra S_Line

Transcrição:

Gerador Menu 1.0 Sobre este pacote Sistema gerador de menu para prompt de comando. 1.1 Sobre AVISO: A biblioteca só funciona corretamente com as versões 2.6 ou superiores ou 3.0 ou superiores. Resumidamente, este pacote python facilita a criação de menus para prompt de comando. Você já deve ter se enrolado com vários ifs, loops recursivos e breaks, ao criar menu para seus testes rápidos, organização dos seus programas, ou até mesmo em um programa profissional. O intuito deste pacote facilitar esta parte do seu código, escrevendo poucas linhas e fazendo o necessário. O core do Menu utiliza os seguintes módulos tanto para aumentar sua personalização, quanto para funcionar corretamente. Estes módulos talvez sejam úteis a você: colorirterminal: Colorir os textos no terminal; deterctarteclado: Captura de teclas. Bastante útil quando seu programa é multiplataforma e multi-versão do Python; i18n: Facilitar a internacionalização do código; procedimentos: Alguns procedimentos soltos (que não se encaixaram em nenhuma categoria acima) interessantes. Mais detalhes destes módulos serão abordados mais adiante. 1.2 Características Resumidamente, suas características e sua filosofia são: Multiplataforma - Windows e Sistemas Baseados em Unix Fácil utilização Exportável para XML Visual customizável

Tratamento de erros (implementando) Internacionalização do código Customização: Texto colorido 1.3 Para próximas versões Opções com numeração definida pelo programador Integração com outras linguagens (Testar) Copiar em um arquivo a documentação. Tanto da biblioteca com de suas subbibliotecas. (isso que você está lendo) 2.0 Sobre este documento A intenção deste documento é do mesmo ser um guia completo sobre o pacote aqui abordado. Por isto, possivelmente a leitura na íntegra pode ser cansativa. Então, você pode clicar aqui e pular para o índice de exemplos deste documento. 3.0 Instalando Para instalar, copie a pasta menu para o diretório padrão de pacotes terceirizados da sua versão Python (PythonXX/Lib/site-packages/). Porém, não é necessário a instalação para o uso do pacote. Você pode optar para colocar em um diretório de preferência do seu programa e importa-lo como se fosse um arquivo.py criado por você. 4.0 Criação de um menu A criação de um menu consiste nos seguintes passos: Importação do pacote Atribuição do menu Configuração do menu Gerenciamento de itens e submenus Chamada de execução

Seu programa não necessariamente deverá possuir esta ordem, esta ordem é só uma tentativa de agrupamento dos passos. O aprofundamento destes tópicos será citado mais abaixo 4.1 Meu primeiro menu Para didatizar o aprendizado, podemos fazer um menu com os seguintes passos: Importação do pacote Atribuição do menu Adição de itens Chamada de execução Vamos ao exemplo: # Importação do pacote from menu import Menu # Atribuição do menu menu = Menu("Menu Principal") # Adição de itens menu.adicionaritem([], "Item", print, "Você selecionou a opção 1") menu.adicionaritem([], "Item", print, "Você selecionou a opção 2") menu.adicionaritem([], "Sair", quit) # Chamada de execução menu.executar() 4.2 Importação do pacote Para utilizar o pacote, importe-o: from menu import Menu

4.3 Atribuição do menu Crie uma instância da classe da seguinte forma: menu = Menu("Título do meu menu") 4.4 Configuração do menu Os atributos config e cores são os responsáveis pelas configurações do menu. Altere-os para que o menu se adapte da melhor forma à sua necessidade menu.config["menucaractere"] = "-" menu.config["menutambarra"] = 63 Lembre-se que as configurações serão herdadas pelos submenus (elementos menus filhos) criados após a manipulação das configurações do menu. 4.5 Gerenciamento de itens e submenus Os menus podem ter dois tipos de elementos filhos: Elementos menus (submenus): Elementos que chamarão outras classes Menu. Elementos itens: Elementos que chamarão procedimentos. Os métodos para criação são: Menu.adicionarSubMenu: Para adicionar um elemento menu Menu.adicionarItem: Para adicionar um elemento item E para remoção: Menu.remover: Remove tanto elemento menu quanto elemento item. menu.adicionaritem([], "Rótulo do elemento item", print, "Este é o primeiro elemento do menu") menu.adicionarsubmenu([], "Rótulo do elemento menu")) menu.adicionaritem([1], "Rótulo do elemento item", print, "Este é o primeiro elemento do menu")

# Lembre-se sempre de adicionar um item para retornar ao menu anterior menu.adicionaritem([1], "Retornar ao menu principal", "retornar") # E um para encerrar o menu principal: menu.adicionaritem([], "Sair", quit) # Para encerrar o programa menu.adicionaritem([], "Sair", "retornar") # Na raiz: Para encerrar o loop principal e continuar seu programa (Para futuras versões) Atualmente não existe uma maneira prática de alterar a ordem dos elementos de um menu e nem a alteração dos seus dados. Mas existem truques para isto manipulando-os direto na lista que armazena as informações do menu (Veja a sessão 6.3 Core). 4.6 Chamada de execução Para iniciar o loop principal do menu, chame o método executar. menu.executar() 5.0 Métodos 5.1 Métodos padrões: Menu(titulo="Título", menuanterior=none, coreslib="personalizado") ou Menu. init () Desc: Método iniciador titulo = Str: Rótulo do título menuanterior = Menu: Menu anterior coreslib = Str: Conjunto de cores que serão usadas no menu 'colorido' ou 'personalizado' Menu. repr () Desc: Retorna para impressão os seguintes dados da classe: Título, título do menu pai, total de elementos, total de elementos menus, total de elementos itens.

Exemplo: print(meumenu) Menu. len () Desc: Retorna: Número de elementos do menu Exemplo: len(meumenu) 5.2 Métodos de execução: Menu.iniciar() Desc: Faz nada Menu.executar() Desc: Executa o menu, iniciando o loop principal 5.3 Informações do menu Menu.eMenu(elemento=None, caminho=none) Desc: Verifica se o 'elemento' (dado o mesmo ou o 'caminho') é um objeto da classe Menu elemento = Mixed: Elemento a ser verificado caminho = List: Caminho do 'elemento' a ser verificado return = Bool: É um menu? Erros: Este método gera um MenuError caso tenha especificado um 'caminho' inválido.

5.4 Métodos de incremento: Menu.adicionarSubMenu(caminho, rotulo) Desc: Adiciona um elemento menu (submenu) a um menu. Submenu herda as self.config do pai caminho = List: []: Raiz rotulo = Str: Rótulo do item do menu Erros: Este método gera um MenuError caso você tente adicionar um submenu a um elemento item. Menu.adicionarItem(caminho, rotulo, funcao, *arg): Desc: Adicionar item a um menu caminho = List: []: Raiz rotulo = Str: Rótulo do item do menu funcao = Str: Nome da função arg = Argumentos da funcao Erros: Este método gera um MenuError caso você tente adicionar um item a um elemento item. 5.5 Métodos de decremento Menu.remover(caminho, elemento): Desc: Remove um 'elemento' (seja um item ou submenu) a partir do 'caminho' especificado. caminho = List: Caminho no qual o 'elemento' se encontra []: Raiz elemento = Int: Número de índice do item = Str: Rótulo do item return = Bool: False, caso não exista tal 'item' no 'caminho' especificado True, caso tenha removido com sucesso

Erros: Este método pode gerar dois erros, caso: Especifique um 'caminho' inválido O 'caminho' dado aponta para um item, e não para o submenu. Lembre-se de que o 'caminho' é o submenu na qual o 'elemento' a ser deletado se encontra 5.6 Armazenamento: Salvar Menu.salvar(endereco): Desc: Gera e salva o xml no 'endereco' endereco = str: Endereço do arquivo xml Menu.carregar(endereco): Desc: Carrega o menu salvo em xml no 'endereco' endereco = str: Endereço do arquivo xml retorno = Boolean: True caso o carregamento tenha sido um sucesso 6.0 Atributos 6.1 Configurações dict Menu.config Desc: Dicionário contendo as configurações do menu. Suas chaves são: versão = Str: Versão atual do sistema limpartela = Bool: Você deseja limpar a tela? Padrão: True ondeestou = Bool: Deseja exibir o onde estou? Padrão: True menucaractere: Str: Caractere que circunda o rótulo do menu. Padrão: "*" menutambarra: Int: Total de caracteres da barra que circunda o rótulo do menu. Padrão: 30 detectartecla: Str: "manual", caso precise pressionar Enter para identificar a opção selecionada. Padrão no Linux e no Windows "automatico", caso queira que identifique a tecla assim que a mesma for pressionada. Padrão em outros OS

dict Menu.cores Desc: Contém as cores escolhidas para coloração do menu libatual: Cor qu <------------------------------------------------------=================== 6.2 Informações do menu (TITULO 2) int Menu.numElem Desc: Retorna o total de elementos do menu Obs: Faz o mesmo que Menu. len () int Menu.numElemMenu Desc: Retorna o total de elementos menus (SubMenus) int Menu.numElemItem Desc: Retorna o total de elementos itens str Menu.nome GET - Desc: Retorna o nome do menu SET - Desc: Altera o nome do menu list Menu.itens GET - Desc: Retorna os itens do menu SET - Desc: Faz nada. Pressupôe-se que a pessoa queira desconfigurar os menus menu.itens é imutável

6.3 Core list Menu.menu Desc: Estrutura do menu. Lista contendo a estrutura do menu e seus filhos Como dito no tópico 4.5, existem dois tipos de elementos: menus e itens. Sendo que cada uma delas possuem uma estrutura própria: 1. Elemento menu: o idtipoelemento: Número contendo a id do tipo de elemento: 0 - Menu, 1 - Item o rótulo: Nome do elemento. listadefilhos: Lista contendo os filhos do menu 1. Elemento item: o idtipoelemento: Número contendo a id do tipo de elemento: 0 - Menu, 1 - Item o o rótulo: Nome do elemento. procedimento: Procedimento que será chamado quando o item for selecionado tupladeparamentros: Tupla contendo os parâmetros dados na criação deste elemento. Obs¹: Em um futura versão o idtipoelemento será substituido por charidelem, onde charidelem será um char que será usado para chamar seu submenu ou procedimento. Obs²: Alterando idtipoelemento, você não alterará o tipo de elemento. Um elemento menu é, sobretudo uma classe, enquanto um elemento item é uma lista com as seguintes características citadas acima. Acesso aos elementos filhos de um menu Aprender a ter acesso de forma correta aos elementos filhos vai te propiciar a ter um controle mais avançado do menu, podendo usufruir de melhor forma da classe Menu, suprindo suas necessidades que os métodos padrões da classe não resolvem, como a alteração de ordem dos elementos e a alteração das informações dos elementos.

Como espero que tenha percebido, os elementos pertencentes a uma classe Menu se encontram em uma lista que está na 3 posição do seu atributo menu. Vejamos o exemplo: menu = Menu("Comestíveis") menu.adicionarsubmenu([], "Frutas") menu.adicionarsubmenu([], "Legumes") menu.adicionaritem([], "Sobre o programa 'Comestíveis'", print, "Este é um menu exemplo ;D") menu.adicionaritem([], "Sair", quit) menu.adicionaritem([0], "Maçã", print, "Eu gosto de maçã") menu.adicionaritem([0], "Pêra", print, "Sua cor é verde quando não está madura") menu.adicionaritem([0], "Uva", print, "Suco de uva é gostoso!") menu.adicionaritem([0], "Retornar ao menu anterior", "retornar") menu.adicionaritem([1], "Beterraba", print, "Você gosta de suco de beterraba?") menu.adicionaritem([1], "Batata", print, "Elma chips!") menu.adicionaritem([1], "Cenoura", print, ":B") menu.adicionaritem([1], "Retornar ao menu anterior", "retornar") Agora vamos aprender a ter acesso: # O caso 1 é diferente do caso 2, pois o 1 é imutável # Caso 1 - Para visualizarmos itens do menu principal print(menu.itens) # Caso 2 - Ou até: print(menu.menu[2]) # O caso 3 e 4 é para ter acesso dos dados # Caso 3 - Em um elemento item # Agora tenhamos o controle do 3 item da classe Menu (Sobre o programa 'Comestíveis') print(menu.menu[2][2]) # Ele retornará a lista do elemento item: # [1, "Sobre o programa 'Comestíveis'", <built-in function print>, ('Este é um menu exemplo ;D',)]

# Caso 4 - Em um elemento menu print(menu.menu[2][0]) # Ele retornará uma classe Menu (e vai printar conforme abaixo devido ao método repr (): ''' Menu: Frutas Descrição: Menu anterior: Comestíveis Total Elements: 4 Menu elements: 0 Items elements: 4 ''' # Agora, caso queira mecher com um item do menu... # Vamos ter acesso ao 2 item (Batata) do 2 Menu (Legumes) do menu principal: meusubmenu = menu.menu[2][1] print(meusubmenu.menu[2][1]) # [1, 'Batata', <built-in function print>, ('Elma chips!',)] # Obs: No exemplo acima, a variável meusubmenu aponta para o filho do menu, consequentemente, as alterações feitas em meusubmenu serão logicamente feitas no filho do menu. Alterando ordem dos elementos Utilizaremos também neste tópico o exemplo do tópico anterior como base no nosso estudo. menu. Vejamos um exemplo no seguinte menu Alterando as informações dos elementos Utilizaremos também neste tópico o exemplo do tópico anterior como base no nosso estudo. # Com um elemento menu filho: # Instancie meusubmenu = menu.menu[2][1]

# Altere meusubmenu.nome = "Macarronada" meusubmenu.config["menucaractere"] = "x" meusubmenu.config["menutambarra"] = 50 # Com um elemento item filho: # Instancie menufrutas = menu.menu[2][0] itemuva = menufrutas.menu[2][2] # Altere itemuva[1] = " Vinho :D" # Você pode fazer direto também, mas é fácil se perder em itens muito profundos... menu.menu[2][0].menu[2][2][1] = "Laranja" 7.0 Índice de exemplos