Desenvolvendo aplicações GUI simples em Python & Glade (PyGTK) com banco de dados SQLite

O objetivo deste artigo é mostrar de forma objetiva como realizar procedimentos básicos de programação, então vamos abordar a criação da parte gráfica do programa, vamos falar de como usar controles e eventos simples na nossa aplicação, como botões, caixas de textos, janelas, diálogos, listas, o básico necessário da linguagem Python e como fazer as principais operações com banco de dados.

[ Hits: 169.447 ]

Por: Perfil removido em 28/07/2010


Preparando o ambiente



Como eu disse, Python é muito simples e leve. Você pode escrever seus programas Python em um editor de texto simples, e caso você escolha o Gedit do GNOME ainda tem o recurso syntax-highlighter que ajuda bastante. Mas existem várias IDE's para Python, como Eric, IDLE, o próprio Anjuta e uma das mais populares, o Eclipse - como bem sabemos o Eclipse é uma IDE multiplataforma e multilinguagem, e se você já tem instalado o Eclipse basta instalar um plugin pra Python.

Mas eu gostaria de destacar aqui uma alternativa interessante, baseada no Eclipse, o Easy Eclipse for Python, que é a IDE que eu uso - este projeto Easy Eclipse disponibiliza distribuições compactas do Eclipse voltadas e otimizadas pra uma linguagem específica cada, basta baixar o arquivo pelo link no site do projeto, descompactar onde você achar melhor e clicar no arquivo executável (ele está disponível tanto pra Linux, quanto pra Windows e Mac OS X).

Usar uma IDE agiliza bastante nosso trabalho, e no caso do Easy Eclipse é só baixar, descompactar e usar - a menos que você precise fazer alguma adequação específica em seu sistema nada precisa ser configurado, é só programar e dar "play".

Para "desenhar" as nossas telas usamos o Construtor de Interfaces Glade, que é de fácil instalação, nenhuma novidade, facilmente encontrado na Central de Programas do Ubuntu, ou no Adicionar/Remover Aplicações do Debian, ou então você pode instalar diretamente o pacote glade-gnome pelo Synaptic ou via apt-get - instalar é fácil, falar disso aqui chega a ser "chover no molhado".

Pra criar e manusear nosso banco de dados SQLite que usaremos na aplicação minha dica é usar o Sqliteman, que está lá na Central de Programas do Ubuntu, ou então procure pelo pacote sqliteman e instale conforme a disponibilidade dele para sua distribuição - um detalhe é que no menu Aplicativos este aplicativo não fica na categoria Desenvolvimento, mas sim em Escritório.

Tendo instalado estes três programas que precisamos, mais especificamente os últimos dois, creio eu que junto com eles todas as dependências e pacotes necessários já terão sido instalados junto no processo (pelo menos comigo foi assim). Caso seu sistema acuse a falta de algum componente verifique a instalação dos seguintes pacotes (não necessariamente nesta mesma ordem):

Python

  • python (geralmente basta pedir pra instalar este pacote que o resto vem junto, mas é quase impossível que você já não tenha instalado ele)
  • python-minimal
  • python-dev
  • python2.6-dev
  • python2.6-minimal

GTK/Glade

  • glade-gnome (geralmente basta pedir pra instalar este pacote que o resto vem junto)
  • glade
  • libglade2-0
  • libglade2-dev
  • libgtk2.0-0
  • libgtk2.0-dev
  • python-glade2
  • python-gtk2
  • python-gtk2-dev

SQLite

  • sqlite3 (a instalação geralmente não é necessária pois o SQLite foi feito pra funcionar com o arquivo sozinho, sem precisar de componentes adicionais, pelo menos pras aplicações cliente - este pacote disponibiliza uma interface de linha de comando pra manusear seus bancos de dados)
  • python-pysqlite2 (sequer tenho instalada)

A lista parece grande, mas é só por garantia, pra poupar tempo caso algo não funcione direito, mas eu não acredito que isso possa acontecer, pois, como destaquei, falando do Ubuntu principalmente, ele dá pleno suporte pro Python, então o risco é quase inexistente.

Bem, e já que estamos nos prevenindo contra possíveis falhas causadas por falta de pacotes ou configuração, caso seu Easy Eclipse não consiga dar o "play" no seu programa, nele, vá em Window - Preferences..., selecione e abra o item PyDev na lista, depois o subitem Interpreter - Python e informe o caminho /usr/bin/python - fazendo isso as bibliotecas necessárias serão adicionadas automaticamente e tudo vai funcionar, mas eu realmente creio que não seja necessário pois no meu caso tudo foi configurado automaticamente (isso pode mudar dependendo de sua distro ou se você estiver usando Windows, por exemplo).

E é isso.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Por que Python?
   3. Preparando o ambiente
   4. Dando forma à aplicação
   5. Agora vamos programar
   6. Continuando a programar
   7. Finalizando com a listagem
Outros artigos deste autor

O vale do silício no Brasil

Instalando o Linux Ubuntu 8.04 Hardy Heron

Algoritmo... como fazer?

Datagramas IP (Protocolo Internet)

Atualização e instalação de programas no FreeBSD

Leitura recomendada

Arduino com Bluetooth e pySerial

Como isolar seus projetos Python com virtualenv (ambiente virtual)

Embutindo imagens nos scripts Python para aplicações Tkinter

RapidScan - Multi-Tool WEB Vulnerability Scanner

Interagindo com servidores HTTP com Python

  
Comentários
[1] Comentário enviado por fonini em 29/07/2010 - 08:27h

Parabéns pelo excelente artigo!

[2] Comentário enviado por balani em 29/07/2010 - 09:40h

Excelente artigo, estou iniciando em Python, seu artigo me ajudará muito, nesse aprendizado.

Parabens!

Abraços


Adriano R. Balani

[3] Comentário enviado por gtuxed em 29/07/2010 - 12:34h

Bom artigo, parabéns.

Estes dias fiz meu primeiro aplicativo com PyGTK e apesar de também ser iniciante em python, não achei muito difícil exceto por ainda achar as estruturas liststore/treestore um pouco "overkill" rsrs.

Falando mais sobre estas estruturas, acho que apesar da flexibilidade que elas oferecem, deveria haver uma interface mais simples para coisas mais pragmáticas.

Mas isso é mais um problema com GTK do que com PyGTK (que é apenas um binding).

hehe, olha só como é complexo criar uma simples lista e apresentar...

##

# Criamos um modelo ListStore(<tipo>,<tipo>,...)
liststore = gtk.ListStore(str)

# Baseado no modelo criamos uma treeview
treeview = gtk.TreeView(liststore)

# Precisamos criar um "renderizador" (será que estou usando blender, engine 3d, etc.? rsrs)
textrenderer = gtk.CellRendererText()

# Adicionamos a coluna ao treeview
column = gtk.TreeViewColumn('Nome da coluna', textrenderer, text=0)
treeview.append_column(column)

# Adicionamos valores à lista
for row in ['a','b','c']:
itt = liststore.append([row])

##

Poderia ser assim:

##

# Criamos a lista
list = gtk.List(str)

# Adicionamos valores à ela
list.append('teste')

##

Da pra fazer isso facilmente, mas acho que isso já deveria existir rsrs

[4] Comentário enviado por gomes-fdr em 29/07/2010 - 16:26h

Muito bom o seu artigo, parabens.

Para mim servirá como material de apoio para o inicio de aplicativos baseados em Python(desktop).

Saudações.

[5] Comentário enviado por albfneto em 01/08/2010 - 18:48h

émuitobom esse artigo.! 10

[6] Comentário enviado por Lisandro em 21/12/2010 - 09:05h

Parabéns pelo artigo. Muito Bom.

[7] Comentário enviado por quemsoueu em 06/07/2012 - 08:18h

Cara seu artigo abriu meus olhos eu tava quase desistindo de desenvolver o software.
A dúvida é com o tkinter eu consigo rodar ele no windows como java, entretanto como faço para rodar ele no windows ele foi escrito com o pygtk e glade, e preciso rodar numa estação Win, acaso você já fez isso?

[8] Comentário enviado por leo523 em 10/06/2013 - 10:17h

Ótimo post, mas atualmente o modo é um pouco diferente, ao inves de usar a biblioteca glade.XML para chamar o xml, usa-se o gtk.builder.

Respondendo o comentário acima, para distribuir no Windows vc deve instalar o pygtk completo que esta neste link :
http://ftp.gnome.org/pub/GNOME/binaries/win32/pygtk/2.24/

[9] Comentário enviado por wladimir58 em 15/06/2016 - 16:27h

Nunca consegui usar as interfaces do Glade nos meus programas em Python




Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts