Archive

Archive for the ‘PyGTK’ Category

Calculadora em 5 min. em PyGTK

December 10th, 2008

Todos que sabem programar um pouco em python, já deve ter visto que podemos utilizar o terminal interativo para resolver expressões matemáticas. Mesmo assim resolvi fazer uma brincadeira: Criar uma calculadora gráfica em menos de 5 minutos. Na verdade eu queria saber também como funcionava um programa de gravação screencast (usei o gtk-recordMyDesktop) e também já fazia um tempo que não colocava nada no blog :)

A imagem não ficou muito boa, mas já serviu para validar os 5 minutos! hehe

Código Fonte da aplicação

PyGTK, Python , , ,

Desenvolvimento em camadas usando PyGTK

October 28th, 2008

Esse post refere-se a um programa simples que eu e o Muriel de Souza Godoi desenvolvemos para ministrar um mini-curso “Desenvolvimento em Software Livre” no IV Jornada Linux aqui em Maringá.
O programa é um cadastro de eventos simples, mas que buscou trabalhar conceitos interessantes, tais como:

  • Controle de versão - Subversion;
  • Desenvolvimento dividido em camadas de modelo, controle e visão;
  • Prototipação de Interface;
  • DAO (Data Access Object) - Padrão para persistência de dados que permite separar regras de negócio das regras de acesso a banco de dados; etc.

Vale dizer que a aplicação não foi baseada no MVC puro, mas sim algo próximo, que permitiu perceber o acesso aos dados, a lógica de negócios e a apresentação. Na figura ao lado podemos perceber um diagrama simples que exemplifica como a aplicação foi dividida.

O uso do Glade para desenvolvimento da interface, interfere um pouco na idéia de se criar um MVC puro, pois seu uso correto não só desenha a interface, como também cria as chamadas para funções que seria tarefa do Controle.

A seguir parte do código em que essa “amarração” foi feita:

from app.compromissodao import CompromissoDao
from app.controle import Controle
from app.interface import Widgets
 
modelo = CompromissoDao()
controle = Controle()
interface = Widgets()
 
controle.set_modelo(modelo)
controle.set_interface(interface)
interface.set_controle(controle)

O aplicativo foi distribuido sob GPLv.2 com o motivo de estudo e o download do pacote pode ser feito clicando aqui

PyGTK, Python, Software Livre , , , ,