GtkDialog (ou gtkdialog) é um pequeno utilitário para fácil e rápida construção de interfaces gráficas. Ele pode ser usado para criar caixas de diálogo para quase todas as linguagens de programação interpretadas e compiladas, o que é uma característica muito atraente, pois o desenvolvedor não tem que aprender várias bibliotecas gráficas para cada linguagem de programação que utilizar. Neste artigo, saiba como criar aplicações gráficas com ShellScript e GTKDialog.
Instalação do GTKDialog no Linux
Para compilar execute os comandos abaixo:
Criando o primeiro programa:
Vamos criar uma pequena aplicação gráfica utilizando GtkDialog + ShellScript:
#!/bin/bash export MAIN_DIALOG=' <window title="Meu primeiro programa" icon-name="gtk-about" resizable="true" width-request="300" height-request="100"> <vbox> <hbox homogeneous="true"> <frame Executar programa> <hbox homogeneous="false" space-expand="true" space-fill="true"> <entry> <variable>ENTRY</variable> <action signal="activate">$ENTRY</action> <action signal="activate" type="exit">EXIT</action> </entry> <button> <label>Executar</label> <action type="command">$ENTRY</action> <action function="exit">EXIT</action> </button> </hbox> </frame> </hbox> </vbox> </window>' case $1 in -d | --dump) echo "$MAIN_DIALOG" ;; *) gtkdialog --program=MAIN_DIALOG --center ;; esac
Explicando o código resumidamente:
OBSERVAÇÃO: A sintaxe para criação da interface segue o padrão XML, portanto as TAGS devem ser abertas e fechadas corretamente.
- #!/bin/bash: A primeira linha do script, representa qual programa será utilizado para interpretar o código
- export MAIN_DIALOG=…: Variável que contém toda a estrutura da interface gráfica, o nome da variável pode ser qualquer um
- <window>:
Tag que inicia a aplicação. Nela pode conter atributos como título,
tamanho da janela, ícone da janela, entre outras opções - <vbox>:
Caixa vertical (Vertical box) usada como container para outros objetos
como caixas horizontais (hbox), botões (button), etc… - <hbox>: Caixa horizontal (Horizontal box) também usada como container para outros objetos
- <button>: Tag para criação de botões
- <label>: Atribui um nome para o objeto
- <action>:
Ação que será realizada dependendo do sinal e do tipo de ação que o
objeto receberá. Pode ser executado um comando do shell, execução de
programas (que se trata do nosso caso), execução de outras variáveis,
etc… - </nome_da_tag>: Fechamento da tag aberta anteriormente, assim como no XML.
As possibilidades são imensas, você pode fazer desde aplicações gráficas simples, até mais avançadas como um player de música, um editor de textos, e assim por diante. Segue também página com diversos exemplos de aplicações com GtkDialog: