Usando Glade e Python

Glade Interface

Glade é um construtor de interfaces em GTK, no momento ele está em sua 3º versão, sua função é muito “simples” gerar interfaces de forma intuitiva e salvando as especificações de cada objeto em um xml que é nomeado com a extensão “.glade”.
Apoós gerar o arquivo “.glade” é que vem a mágica, com a libglade biblioteca que está disponível em diversas linguagens, é possível gerar toda a interface com todos os objetos devidamente configurados em tempo de execução, não gerando códigos enormes e “sujos” que obrigatoriamente ficariam em um arquivo de código,  deixando o código do seu programa grande e confuso e de difícil manutenção.
A algumas horas atrás antes de escrever este post estava aprendendo a utilizar a libglade de fato, depois de anos sabendo de sua existência. Cheguei a fazer um programa em C com a libglade mas o perdi pois já faz um tempo que o escrevi, hoje irei deixar as fontes que achei e mostrar  o meu processo de busca e escrita do código, que não passa de uma janelinha de login, bem simples.

Bom sabendo um pouco do caminho ficou fácil, então vamos começar por este tutorial do wiki do pessoal da UFPE, nele há uma ótima explicação de como é funcionamento das interfaces gráficas e como é o funcionamento do Glade e da libgade, contando com vários códigos em diversas linguagens utilizando o mesmo arquivo glade para gerar as interfaces gráficas,  isso tudo para provar a portabilidade do código e de como esta ferramenta de programação é incrível. Bom após ler todo o artigo copiei o exemplo do arquivo glade e o código em python, instalei as bibliotecas e o glade (os nomes dos pacotes estão no final deste post) e rodei o programa, funcionou muito bem.
Dando mais uma pesquisada achei mais um exemplo com um vídeo tutorial, a moleza é que o autor já empacotou o código e o glade, então foi só rodar. E por fim uma apostila que apesar de antiga serve muito bem para quem está aprendendo a utilizar a libglade e o glade.

Bom depois desta chuva de material vou deixar mais um exemplo pra vocês analisarem o código e o arquivo glade.

A única observação que irei fazer é com relação a estas linhas abaixo:
def login(self,widget,data):
diag=gtk.MessageDialog(self.mainWindow, gtk.DIALOG_MODAL,gtk.MESSAGE_INFO,gtk.BUTTONS_OK)
diag.set_markup("Login realizado com sucesso!")
diag.run()
diag.destroy()

Diferente dos outros objetos que foram gerados pela libglade, a caixa de diálogo que criei estanciando uma caixa de mensagem disponível pela biblioteca pygtk por mera praticidade, já que era mais fácil do que esboçar uma com o glade. Para criar esta caixa eu utilizei das seguintes fontes abaixo, contém um exemplo e a especificação da função.

Exemplo 01 – Caixa de diálogo (http://www.python.org.br/wiki/PyGtkMensagens)
Especificação da função (http://www.pygtk.org/docs/pygtk/class-gtkmessagedialog.html)

Os pacotes no linux(Ubuntu) necessários para desenvolver com python e libglade são:

1. python-glade2
2. python-gtk2
3. glade

O meu exemplo encontra-se aqui.
Projeto Glade

3 Comentários

  1. Legal. Apenas para complementar, desde a versão 2.12 da GTK+, está disponível uma classe chamada GTKBuilder, que faz o mesmo que a libglade, porém de uma forma um pouco diferente. Assim, ela pode substituir a libglade, que parece que foi considerada obsoleta (http://www.mail-archive.com/devel-announce-list@gnome.org/msg00394.html). Tem um exemplo de uso em: http://www.micahcarrick.com/gtk-glade-tutorial-part-1.html

  2. Nossa eu já tinha visto está biblioteca mas não sabia que era para “substituir” a libglade. Valeu stummjr! O teu post sobre repositórios antigos do ubuntu vai me ajudar muito esta semana, (http://stummjr.wordpress.com/2007/12/06/pc-fraco-ubuntu-velho-nele/) estava caçando repositórios de versões antigas e não achava de jeito nenhum.

    1. Massa! Esse aí é um blog que não estou mais mantendo. Tenho escrito mais no meu blog sobre Python: http://pythonhelp.wordpress.com

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

%d blogueiros gostam disto: