Introdução à plataforma GNU de desenvolvimento

A plataforma GNU de desenvolvimento é uma coleção de ferramentas de software livre para o desenvolvimento de aplicativos para as plataformas Windows, Linux, BSD, Mac OS e Unix. Ela é a mais importante ferramenta para desenvolvimento de software para Linux/Unix, é poderosa, estável e completa, mas ainda é pouco popular. Esse artigo apresenta os componentes essenciais dessa plataforma.

[ Hits: 53.595 ]

Por: Renato Merli em 26/02/2010


Criação de interfaces: desenho



Interfaces gráficas podem ser criadas programaticamente, caso em que o programador cria e arranja os componentes um por um, ou criadas através de um criador de interfaces (interface builder), caso em que é utilizado um aplicativo gráfico que permite "desenhar" as interfaces arrastando e soltando componentes.

Na plataforma GNU, mais especificamente no toolkit GTK+, somos livres para utilizar ou não um construtor de interfaces. Em nosso exemplo usaremos um criador de interfaces, o GLADE, em conjunto com o toolkit GKT+, embora a técnica que recomendo para boa parte dos casos seja a criação de interfaces de maneira programática.

O GLADE pode ser utilizado de duas formas: pode gerar o código fonte que cria a interface desenhada, ou pode gerar uma descrição em XML da interface que é posteriormente usada por uma biblioteca (libglade) para reconstruir a interface em tempo de execução.

Utilizaremos a segunda técnica, ou seja, criaremos uma interface utilizando o software construtor de interfaces GLADE para gerar o arquivo XML que será utilizado para reconstruir a interface com a biblioteca libglade quando o aplicativo estiver "rodando".

Como qualquer criador gráfico de interfaces gráficas, o GLADE é operado basicamente de maneira intuitiva. Alguns minutos de experimentação são suficientes para aprender a operá-lo e começar a conhecer os componentes gráficos disponíveis para criar interfaces.

O GLADE tem a seguinte aparência:
Linux: Introdução à plataforma GNU de desenvolvimento
No lado esquerdo está a barra de componentes, de onde são selecionados os componentes para inclusão na interface, ao centro há uma janela sendo criada, enquanto que no lado diretório está o editor de propriedades, onde são editadas as propriedades dos componentes.

Para nosso exemplo, utilizando o GLADE criamos uma janela principal e dois formulários, um para inserção de títulos:
Linux: Introdução à plataforma GNU de desenvolvimento
E um para pesquisa:
Linux: Introdução à plataforma GNU de desenvolvimento
Alguns componentes são propositalmente omitidos, pois serão criados programaticamente e, na fase em que estamos, apenas reservamos espaço para eles.

Tendo "desenhado" a interface, vamos programar seu comportamento.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Criação de interfaces: desenho
   3. Criação de interfaces: programação
   4. Banco de dados
   5. Colocando tudo junto: programação do aplicativo
Outros artigos deste autor

Ensaio acerca de bibliotecas de código aberto para abstração de acesso a banco de dados em linguagem C++

Leitura recomendada

Criando um sistema operacional com ASM e C++

Aprendendo a utilizar o GNU Debugger (parte 1)

Criando aplicativos para o Mac OS X no GNU/Linux

C - Include e Makefile

Programando em Qt

  
Comentários
[1] Comentário enviado por danielsa em 26/02/2010 - 15:54h

Olá Renato Merli,

Parabéns pelo artigo, nunca tinha visto um tão completo.

Consigo usar esta plataforma para desenvolver aplicações para window e/ou multi plataforma?

Obrigado

[2] Comentário enviado por doradu em 26/02/2010 - 17:23h

fez tudo isso no Windows?

[3] Comentário enviado por fernandoamador em 27/02/2010 - 13:31h

Parabéns pelo artigo...

[4] Comentário enviado por vinipsmaker em 28/02/2010 - 12:29h

parabéns pelo artigo, ficou muito bom mesmo.
+10

[5] Comentário enviado por xadouron em 01/03/2010 - 17:08h

Ola rmerli,

Parabéns pelo artigo.

Só uma coisa:

O link para baixar o código fonte não esta funcionando ( http://uniksys.com.br/renato/pub/exemplodb1.tar.gz ).

Abraços,

[6] Comentário enviado por edkiller em 06/03/2010 - 12:03h

Olá rmerli,

Parabéns pelo artigo !!

Ficou excelente!


[7] Comentário enviado por pedrocipoli em 07/06/2010 - 13:58h

Parabéns rmerli!

Estava pensando em começar a explorar o gtk e essa foi uma excelente introdução.


[8] Comentário enviado por psfdeveloper em 27/08/2010 - 23:20h

Cara, que artigo magnífico.

Eu programei durante muitos anos para Windows mas nunca me envolvi com programação gráfica. Quando migrei para Linux as coisas ficaram mais complicadas ainda para mim. Vou fazer um Bookmark nesse artigo para poder revê-lo futuramente com mais cuidado.

A única reserva que eu tenho é quanto ao uso do GTK. O GTK é portátil, podendo, inclusive, ser utilizado no MinGW, mas no Windows e no Mac OS X eles não se parecem com as widgets nativas, o que deixa os programas com uma cara meio de "estrangeiro". O Mac OS X, pelo menos, com o XQuartz, possui o X Window como interface padrão e qualquer programa X consistente pode ser um programa do Macintosh. Para garantir uma interface consistente entre plataformas, eu acho o WxWidgets mais interessante.

Mas, como tudo em programação, nenhuma solução é 100% boa para tudo. Usar GTK, Qt ou WxWidget depende do gosto do desenvolvedor. O Java Swing também pode ser utilizado para fazer interfaces gráficas multiplataforma, mas ele tem o mesmo problema de estrangeirismo do GTK. Mas uma coisa eu preciso dizer: para interfaces gráficas em Linux, o GTK é praticamente imbatível, a não ser que você esteja fazendo software específico para KDE. Nesse caso é melhor usar o Qt.

Caro Renato Merli, imensos parabéns para seu artigo! Nota 10!

[9] Comentário enviado por fhespanhol em 01/12/2010 - 20:29h

Muito bom seu artigo é justamente o que estamos precisando por aqui. Alguém com objetivos sérios e vontade de compartilhar seus conhecimentos. Parabéns.

[10] Comentário enviado por removido em 14/03/2011 - 17:06h

Parabéns, amigo! Muito bom seu artigo!

[11] Comentário enviado por removido em 13/05/2011 - 01:35h

Também gostei! Muito bom!

[12] Comentário enviado por fernandoamador em 20/06/2011 - 11:09h

Parabéns pelo artigo.

[13] Comentário enviado por rony_souza em 17/04/2012 - 21:14h

Muito bom me ajudou a ficar sabendo sobre programacao ...

[14] Comentário enviado por Ditador Nicastro em 29/09/2012 - 17:37h

Parabéns pelo artigo e obrigado.

[15] Comentário enviado por rbbarretojr em 04/10/2012 - 23:20h

Parabéns pelo artigo.

[16] Comentário enviado por david23.7 em 05/11/2012 - 09:54h

Parabéns! Me deu um bom ponto de partida!

[17] Comentário enviado por rmerli em 05/11/2012 - 12:11h


[8] Comentário enviado por psfdeveloper em 27/08/2010 - 23:20h:

Cara, que artigo magnífico.

Eu programei durante muitos anos para Windows mas nunca me envolvi com programação gráfica. Quando migrei para Linux as coisas ficaram mais complicadas ainda para mim. Vou fazer um Bookmark nesse artigo para poder revê-lo futuramente com mais cuidado.

A única reserva que eu tenho é quanto ao uso do GTK. O GTK é portátil, podendo, inclusive, ser utilizado no MinGW, mas no Windows e no Mac OS X eles não se parecem com as widgets nativas, o que deixa os programas com uma cara meio de "estrangeiro". O Mac OS X, pelo menos, com o XQuartz, possui o X Window como interface padrão e qualquer programa X consistente pode ser um programa do Macintosh. Para garantir uma interface consistente entre plataformas, eu acho o WxWidgets mais interessante.

Mas, como tudo em programação, nenhuma solução é 100% boa para tudo. Usar GTK, Qt ou WxWidget depende do gosto do desenvolvedor. O Java Swing também pode ser utilizado para fazer interfaces gráficas multiplataforma, mas ele tem o mesmo problema de estrangeirismo do GTK. Mas uma coisa eu preciso dizer: para interfaces gráficas em Linux, o GTK é praticamente imbatível, a não ser que você esteja fazendo software específico para KDE. Nesse caso é melhor usar o Qt.

Caro Renato Merli, imensos parabéns para seu artigo! Nota 10!



Obrigado.

Concordo com tudo que disse e confesso que nunca dei a devida importancia ao que voce devidamente define como "estrangeirismo" .Vou passar a considerar esse requisito em projetos futuros.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts