Desenvolvendo uma aplicação com acesso a Bancos de Dados utilizando Mono e PostgreSQL (parte 2)
Tiago Paranhos Lima
Desenvolvendo a interface com Glade
No artigo anterior criamos nossa primeira aplicação utilizando Mono, em modo console. Vamos agora avançar um pouco mais, construindo passo a passo um protótipo de uma aplicação que pode ser utilizada como modelo para desenvolvimento.
1 - O que é o Glade?
2 - Onde posso obter o Glade?
3 - O que o Glade pode fazer?
4 - Como o Glade funciona?
5 - Desenvolvendo uma interface Glade
1 - O que é o Glade?
O Glade é um programa que lhe permite desenhar rapidamente interfaces de usuário gráficas para aplicações GTK+ e Gnome, que já existia antes mesmo do surgimento da plataforma Mono. Como o Mono pode ser utilizado para desenvolver aplicações GTK# gráficas multiplataforma, o Glade torna-se uma ferramenta interessante para a construção desse tipo de aplicativos, despontando, com o auxílio do ambiente de desenvolvimento MonoDevelop, como uma forte alternativa livre ao Visual Studio .NET.
2 - Onde posso obter o Glade?
Na plataforma GNU/Linux, você pode obter o Glade diretamente a partir dos CDs de instalação de sua distribuição. Procure os pacotes "glade" e "libglade". Já se você estiver em ambiente Windows, pode obtê-lo a partir de http://gladewin32.sourceforge.net/modules.php?name=Downloads&d_op=viewdownload&cid=1.
3 - O que o Glade pode e não pode fazer?
O que o Glade pode fazer:
* Desenvolver a interface e associar código à ela; * Criar chamadas vazias e manipuladores de sinais para ligar a interface com o código da aplicação;
O que o Glade não pode fazer:
* O Glade não pode ajudá-lo em todo o processo de codificação de sua aplicação, pois não incluir um compilador, editor ou debugger. Ele pode ser utilizado em conjunto com essas ferramentas.
4 - Como o Glade funciona?
O desenvolvimento com o Glade consiste de 2 etapas:
* Criar a GUI com o libglade; * Carregar arquivos .glade (que nada mais é do que um arquivo xml) com a libglade e criar a GUI em tempo de execução.
5 - Desenvolvendo uma interface Glade
No artigo anterior fizemos acesso a uma tabela simples através do console. Vamos agora criar um formulário para nos exibir os dados da mesma tabela que acessamos no artigo anterior.
Para isso, inicie o Glade. Uma tela similar à da figura a seguir será mostrada.
Figura 1 - Tela principal do Glade
Esta é a tela principal do Glade. Vamos então criar o nosso primeiro formulário Glade. Para isso, clique no botão "Novo".
Na tela que lhe solicita o tipo de projeto, escolha "Novo projeto GNOME".
Clique então no primeiro botão da paleta GTK+ Básico, chamado "Janela" () no fedore core 2.
Veremos então 1 janela vazia, pronta para ser preenchida com widgets:
Em "Título", digite "Teste gráfico PostgreSQL Mono". Acrescente então o widget "Caixa Vertical? (
). Na caixa de diálogo, digite "2" para o número de linhas. Você perceberá então que o formulário horizontalmente se dividiu em 2.
Clique então na primeira metade do formulário e acrescente então o widget "Caixa Horizontal" (
). Em número de colunas, digite "3". O formulário terá então a seguinte aparência:
Acrescente mais 3 widgets "Botão" (). Acrescente o widget "Visão de Lista ou árvore" ().
Antes de prosseguir, para facilitar a seleção dos widgets para que possamos alterar suas propriedades, vamos habilitar a árvore de widgets. Para isso, vamos clicar no menu "Ver", "Mostrar Árvore de Widgets".
A configuração final de sua tela deverá ser a seguinte:
Vamos agora fazer os ajustes finais em nossa interface. Podemos ver que os botões estão com uma aparência bastante desproporcional, mas isso tem um motivo. A biblioteca gráfica GTK posiciona os ícones em seu formulário de forma que, quando se muda a resolução da mesma, por exemplo, os widgets que fazem parte dos formulários são redimensionados de forma a manter a proporção. Isso evita o problema que temos ao desenvolver aplicativos para Windows, onde os componentes gráficos são posicionados em coordenadas X,Y, o que muitas vezes nos força a desenvolver aplicativos na resolução 800x600 a fim de seus componentes mantenham seus posicionamento ao serem redimensionados.
Selecione então, na árvore de widgets, o componente ?hbox1?. Selecione então, no formulário "Propriedades", a guia "Empacotamento". Sua tela deverá semelhante à tela a seguir:
Ajuste as propriedades "Expandir" e "Encher" deste widget para "Não". Agora nossos botões assumiram um tamanho mais adequado. Volte para a guia "Widget" em "Propriedades".
Através da árvore de widgets, selecione os seguintes componentes e sete as suas propriedades como descrito a seguir:
button1: Nome - BTNvisualizarRegistros Etiqueta - Visualizar Registros
button2: Nome - BTNsobre Etiqueta - Sobre
button3: Nome - BTNsair Etiqueta - Sair
scrolledwindow1: Nome - SCRWregistros
A aparência de nosso formulário nesse ponto deverá ser esta:
Vamos agora salvar nosso projeto.
Para isso, vamos clicar no botão "Salvar", no formulário principal. Digite os dados para salvar o projeto conforme a figura abaixo:
Ainda não terminamos. Falta agora criarmos os manipuladores de sinais que a nossa aplicação Mono irá tratar. Para isso vamos selecionar os componentes desejados na "Árvore de Widgets".
Selecione o objeto BTNvisualizarRegistros na "Árvore de Widgets". Clique agora na janela "Propriedades", e selecione a guia "Sinais". Em sinal, clique no ícone
. Surgirá então uma nova janela solicitando que você escolha o sinal:
Selecione "Clicked" e clique em OK. Clique em "Adicionar".
Faça a mesma coisa com os objetos BTNsobre e BTNsair.
Não será necessário criar um manipulador de sinais para o nosso grid, uma vez que ele irá ser preenchido com os dados recuperados da tabela linguagens_mono, criada no artigo anterior.
Você já pode salvar o projeto e fechar o Glade agora.