Jump to content

Introdução a criação interface gráfica com Shell Script e Yad


Walderlan Sena

Recommended Posts

Introdução a Criação de Interface Gráfica com Shell Script e Yad 

:D

"Shell script é uma linguagem de script usada em vários sistemas operativos (operacionais), com diferentes dialetos, dependendo do interpretador de comandos utilizado. Um exemplo de interpretador de comandos é o bash, usado na grande maioria das distribuições GNU/Linux." Fonte: https://pt.wikipedia.org/wiki/Shell_script

Vamos entender o que é uma interface:

"Elemento que proporciona uma ligação física ou lógica entre dois sistemas ou partes de um sistema que não poderiam ser conectados diretamente."

E o que é Interface Gráfica?

"Interface Gráfica é um conceito da forma de interação entre o usuário do computador e um programa por meio de uma tela ou representação gráfica, visual, com desenhos, imagens, etc. Geralmente é entendido como a “tela” de um programa."

O que significa Yad ?

Yad Logo

"Yad Significa (Yet Another Dialoging program). O yad é um fork do zenity, só que muuuuuito mais incrementado." O autor do Yad é o ucraniano Victor Ananjevsky, e a página do projeto pode ser encontrada no: http://code.google.com/p/yad/

Para realizar a instalação em sistemas operacionais baseados no Debian digite:

sudo apt-get install yad

Vamo qui vamo !!!!! 9_9  

Como de costume no inicio de novas tecnologia sempre utilizamos o famoso Hello World, então vamos lá:

Abra seu terminal e digite:

yad  --center

Hello World Yad

O comando --center, se refere a centralização do seu programa no centro da sua tela.

 

Alguns comando disponíveis com suas respectivas explicações de funcionamento:

Uso:
  yad [OPÇÃO...] - Yet another dialoging program

Opções de ajuda:
  -h, --help                                    Exibe opções de ajuda
  --help-all                                   Exibe todas as opções de ajuda
  --help-general                         Mostrar opções gerais
  --help-common                       Mostrar opções comuns
  --help-calendar                       Mostrar opções de calendário
  --help-color                              Mostrar opções de seleção de cor
  --help-dnd                                 Mostrar opções de arrastar e soltar
  --help-entry                              Mostrar opções de entrada de texto
  --help-file                                  Mostrar opções de seleção de arquivos
  --help-font                                Mostrar opções de seleção de fonte
  --help-form                               Mostrar opções de formulário
  --help-html                               Mostrar opções de HTML
  --help-icons                              Mostrar opções de caixa de ícones
  --help-list                                  Mostrar opções de lista
  --help-multi-progress          Mostrar opções de múltiplas barras de progresso
  --help-notebook                     Mostrar opções de diálogo de notebook
  --help-notification                 Mostrar opções de ícone de notificação
  --help-paned                            Mostrar opções de diálogos panorâmicos
  --help-picture                          Mostrar opções de diálogo de imagem
  --help-print                              Mostrar opções de diálogo de imressão
  --help-progress                      Mostrar opções de progresso
  --help-scale                             Mostrar opções de escala
  --help-text                               Mostrar opções de texto de informação
  --help-filter                             Mostrar opções de seleção de arquivos
  --help-misc                             Mostrar opções de micelânea
  --help-gtk                                Mostra as opções do GTK+

 

E por fim você pode, desenvolver formulários sensacionais com essa ferramenta. Fica a Dica !!! 

Para mais informações sobre o desenvolvimento com Shell script e Yad, acesse:

image.thumb.png.642233e7bd187e69671aacd1d891ff87.png

 

Grande abraço ! 

Link to comment
Share on other sites

YAD é muito legal. Tem mais exemplos pra compartilhar? Coisas como capturar o retorno de caixas de diálogos com botões e tal.

Lembrando que o mestre Julio, nosso primeiro entrevistado no Papo Binário, é super fã de YAD e tem um livro específico sobre interfaces gráficas no shell chamado Bombando o Shell. :)

Abraços!

Link to comment
Share on other sites

Continuando o poste anterior, segue novas funcionalidades:

Com o Yad é possível como citado anteriormente criar formulário:

Uso:
  yad [OPÇÃO...] - Yet another dialoging program

Opções de formulário
  --form                                       Exibir caixa de diálogo tipo formulário
  --field=ROTULO[:TIPO]        Adicionar campo a formulário (veja a página de manual para a lista de tipos possíveis)
  --align=TIPO                           Defina o alinhamento dos rótulos de campo (left, center ou right)
  --columns=NUMERO           Defina o número de colunas no formulário
  --scroll                                      Fazer um formulário com rolagem
  --output-by-row                   Ordenar campos de saída das linhas
  --focus-field=NUMERO      Definir campo ofuscado

O --form indica para o Yad que posteriormente o formulário será criado. Com isso o --field propõe vários tipos de forms...

Opções de formulário
       --field = LABEL [: TYPE]
              Adicione campo para formar. O tipo pode ser H, RO, NUM, CHK, CB, CBE, CE, FL, SFL, DIR, CDIR, FN, MFL, MDIR, DT, SCL, CLR, BTN, FBTN, LBL ou TXT.
              H - tipo de campo oculto. Todos os caracteres são exibidos como o caractere invisível.
              RO - campo está em modo somente leitura.
              NUM - campo é numérico. O formato de valor inicial para este campo é VALUE [! RANGE [! STEP! [PREC]]], onde RANGE deve estar na forma MIN..MAX.
              `! ' é um separador de itens padrão. PREC é uma precisão para decimais.
              CHK - campo caixa de seleção. O valor inicial é uma constante booleana insensível a maiúsculas e minúsculas (TRUE ou FALSE).
              CB - caixa de combinação de caixa. O valor inicial é uma lista VAL1! VAL2! .... O separador é o mesmo que no campo NUM. Valor iniciado com `^ '
              ameaças como padrão para combo-box.
              CBE - campo combo-box editável. Valor inicial o mesmo que para combo-box.
              CE - entrada com conclusão. Valor inicial o mesmo que para combo-box.
              FL - botão de seleção de arquivo.
              SFL - campo para criar arquivo.
              DIR - botão de seleção de diretório.
              CDIR - campo para criar pasta.
              FN - botão de seleção de fonte. Valor inicial igual ao diálogo de fonte.
              MFL - selecione vários arquivos. O valor deste campo é uma lista de arquivos separados por item-separator.
              MDIR - selecione várias pastas. O valor deste campo é uma lista de pastas separadas por item-separator.
              DT - campo da data.
              SCL - campo de escala. Valor deste campo em um intervalo de 0..100.
              CLR - botão de seleção de cores. Os valores de saída para este campo geram da mesma maneira que para a caixa de diálogo de cores.
              BTN - botão campo. O rótulo pode estar em forma de texto em uma forma LABEL [! ICON [! TOOLTIP]] onde `! ' é um separador de itens. LABEL é um texto de
              etiqueta do botão ou gtk stock id. ICON é um ícone de botões (stock id ou nome de arquivo). O TOOLTIP é um texto opcional para a seqüência de ajuda pop-up.
              O valor inicial é um comando que está sendo executado quando o botão é clicado. Um sintoma especial% N no comando é substituído pelo valor do campo
              N. Se o comando começar com @, a saída do comando será analisada e as linhas serão iniciadas com o número e os dois pontos serão tratados como um novo
              valores de campo. Um estilo de citação para valor quando sh -c é usado - uma única cotação em torno de comando e dupla citações em torno de -c argumento
              FBTN - o mesmo que o campo do botão, mas com o alívio total de um botão.
              LBL - rótulo de texto. Se o nome do campo estiver vazio, a linha separadora horizontal será mostrada.
              TXT - entrada de texto multilinha. Este campo sempre ocupa toda a largura do formulário.

 

Então vamos criar nosso primeiro formulário !^_^

#!/bin/bash

#   Cria uma 'função' que monta e armazena o retorno do formulario
FORM=$(
    yad --center --title="Formulario de Cadastro"                   \
        --width=400 --heigth=400                                    \
        --text="Preencha todos os campos" --text-align="center"     \
        --form                                                      \
        --field="Nome  : " ""                                       \
        --field="Email : " ""                                       \
        --field="Profissão:":CB Programador!Técnico!Analista!Outro  \
        --button gtk-add --buttons-layout="center"                  \
        )


echo $FORM

A execução do script acima resultará em:

59f79ffc1e8bb_Capturadetelade2017-10-3018-55-03.png.c7468b7fc2b9357dc83300fed7069f96.png

E o retorno do botão adicionar será:

Walderlan Sena|walderlan@email.com|Programador|

Desta forma perceba que a um padrão de separação entre os dados de retorno, ou seja, os mesmo estão separados por "|" pipeline. Com isso vamos utilizar o comando cut(Para saber mais sobre o CUT, acesse o vídeo Cortando seções de texto com o cut ) para capturar os dados armazenados na variável $FORM.

Utilizando o CUT executar o seguinte comando:

#!/bin/bash

#   Cria uma 'função' que monta e armazena o retorno do formulario
FORM=$(
    yad --center --title="Formulario de Cadastro"                   \
        --width=400 --heigth=400                                    \
        --text="Preencha todos os campos" --text-align="center"     \
        --form                                                      \
        --field="Nome  : " ""                                       \
        --field="Email : " ""                                       \
        --field="Profissão:":CB Programador!Técnico!Analista!Outro  \
        --button gtk-add --buttons-layout="center"                  \
        )

nome=$(echo  "$FORM" | cut -d "|" -f 1)
email=$(echo "$FORM" | cut -d "|" -f 2)
prof=$(echo  "$FORM" | cut -d "|" -f 3)

echo "Seu nome e      : $nome"
echo "Seu email e     : $email"
echo "Sua profissão e : $prof"

Após a execução o retorna no terminal será:

59f7a2b2c5736_Capturadetelade2017-10-3019-07-22.png.5108ad515529f54575b904d5fd559eed.png

 

Bom, este é mais um exemplo simples do funcionamento de formulário com Shell Script e Yad...

 

Até a próxima....

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...