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: 163.191 ]

Por: Perfil removido em 28/07/2010


Introdução



Desde que eu mudei pro GNU/Linux que tenho buscado a melhor alternativa para desenvolver minhas aplicações. Como eu vinha de muito tempo trabalhando e programando com e para Windows (infelizmente), naturalmente tudo o que eu fazia no Linux eu procurava fazer sempre da maneira mais semelhante ao que eu faria no Windows, e com a programação não foi diferente.

No Windows, por um longo tempo eu trabalhei com Visual Basic, mas sempre fui fã do Delphi, então meu primeiro impulso ao vir pro Linux foi usar o Lazarus (confira meu post sobre isso em meu blog), e por mais que ele seja uma ótima ferramenta, eu não me senti muito à vontade com ele, alguns bugs e incompatibilidades acabaram me desanimando.

Depois eu caí no C++, (primeiro com GTK e depois com QT), me empolguei bastante no início (também escrevi sobre isso em meu blog), mas a "burocracia" e a complicação dessa linguagem também me desencorajaram, não porque a linguagem não seja boa, mas porque eu queria algo mais simples mesmo. Ah, sim, eu até cheguei a tentar algo com o Gambas, uma IDE para Basic (veja neste post), só que isso não passou de curiosidade.

Enfim, foram várias tentativas improdutivas, mesmo assim eu ainda "torcia o nariz" pro Python - o artigo "Python em 15 minutos" do Wiki Ubuntu-BR (minha distribuição principal) até que chamava minha atenção, porém demorou pra eu ter interesse em ir mais a fundo.

A primeira vez em que ouvi falar em Python foi em 2003, quando eu nem cogitava abraçar a causa GNU/Linux, foi através de um colega de trabalho que comentou sobre um ex-colega dele: "o cara era meio louco, programava em Python". Anedotas à parte, um dos motivos que me levou a relutar diante do Python é o mesmo que hoje me impulsiona a escrever sobre o assunto.

Por mais que seja uma linguagem amplamente usada no mundo Linux, principalmente no Ubuntu, ainda existe uma certa dificuldade de encontrar materiais que abordem o assunto de maneira objetiva no nosso idioma (Português) - existe sim muita coisa boa a respeito em Inglês, mesmo assim (pelo menos eu vejo assim) se você fizer uma pesquisa no Google dificilmente vai achar um "HowTo" simples e direto, a maioria das apostilas e tutoriais se limitam ao básico do básico, e quando achamos algo, digamos, mais produtivo, é sempre tudo muito fragmentado.

Outro aspecto, isso principalmente pra quem já tinha uma certa experiência em outras linguagens e plataformas como eu, é que, num primeiro momento, olhar para um código Python é algo que chega a ser meio estranho, ele parece ser diferente de tudo o que já vimos, a sintaxe, o modo de programar em si, sem contar que é uma das poucas linguagens (na verdade nesse sentido eu só conheço Python mesmo) em que a identação influencia no processamento dos algorítimos, principalmente no que se refere à delimitação dos blocos de instruções, como if, for, while, try e na "hierarquia" de funções e classes... Isso tudo é uma coisa que pode se reverter radicalmente (e positivamente) com o tempo, e principalmente com o interesse que surge depois que o preconceito é derrubado - foi o meu caso.

    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

Backup/Restore de uma cópia fiel de um HD utilizando o DD

Eu!noel é sinônimo do Arch Linux! Por quê?

Udev - Funcionamento e Regras

Configurando o aMSN para Lan House e/ou Cyber Café

TCollection e Generics no Free Pascal - Uma breve visão sobre lista de objetos com o Lazarus

Leitura recomendada

Como baixar vídeos do Facebook via terminal

Python para pesquisadores: material didático

Introdução ao clib (Command Line Book)

Como isolar seus projetos Python com virtualenv (ambiente virtual)

Breve Estudo Sobre Ransomwares e Análise Estática/Dinâmica do WannaCry

  
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