Arquivo de formulario

Criando uma simples janela em pygtk – Parte II

Posted in gtk, Linux, Programação, pygtk, Python with tags , , , , , , , , , , , on 10 / junho / 2008 by medeubranco

No nosso primeiro artigo sobre este assunto, criamos uma janela sem conteúdo algum. Desta vez vamos adicionar alguma funcionalidade a esta janela. Baixe o código fonte abaixo, salve como gtk_window.py e execute-o:

#!/usr/bin/env python

import pygtk
import gtk

def clicada( botao , label ):
    if label.get_text() == "" :
        label.set_text( "obrigado" )
    else:
        label.set_text( "" )

win=gtk.Window( )
win.set_title( 'Titulo da Janela' )

win.set_size_request(200,50)
win.connect( "destroy" , gtk.main_quit )

box=gtk.VBox( )
win.add( box )

label=gtk.Label( "" )
box.pack_start( label )

botao=gtk.Button( "clique-me" )
box.pack_start( botao )
botao.connect( "clicked" , clicada , label )

win.show_all()
gtk.main()

A primeira diferença deste código para o anterior é que agora usamos uma função:

def clicada( botao , label ):
    if label.get_text() == "" :
        label.set_text( "obrigado" )
    else:
        label.set_text( "" )

Esta função, que denominamos “clicada”, está aí para ser uma função de callback para o botão que será criado mais à frente no código. Ela recebe dois parâmetros: um gtk.button e um gtk.Label.

Uma outra novidade é a gtk.VBox criada na linha 18. A VBox (Caixa Vertical) é um container; serve para “acondicionar” os widgets (botões, caixas de texto, rótulos, etc) na janela. Existem outros tipos de container e você pode aprender mais sobre eles em outro lugar.

Na linha 19 ( win.add( box ) ), a gtk.VBox é adicionada a Janela.

Um novo widget é criado na linha 21 [ label=gtk.Label( "" ) ], uma “etiqueta” com rótulo em branco. Esta “etiqueta” é adicionada à gtk.VBox na linha 22 [ box.pack_start( label ) ].

Nas linha 24 e 25 repetimos o procedimento, desta vez com um gtk.Button, um botão.

Agora atenção, pois na linha 26 é que nós dizemos o que vai acontecer quando o botão for clicado:

botao.connect( "clicked" , clicada , label )

Esta linha conecta o sinal “clicked” à função ‘clicada’ ( linhas 6 a 10 ), passando como parâmetro o objeto label. O próprio botão é passado como parâmetro aqui de forma implícita.

Na linha 28 determinamos a exibição da Janela e todos os seus componentes, e na linha 29 chamamos o loop principal.

Copie o código, salve e execute.

Python, MySQL e adeus, Access

Posted in Linux, Programação with tags , , , , , , , , on 3 / junho / 2008 by medeubranco

Este post é continuação desse outro.

É, o Cléberson ficou mesmo interessado nas ferramentas que o Linux oferece.

Pois bem, Cléberson, primeiro vamos falar para que serve cada uma delas.

Os sistemas que o Cléberson desenvolveu e que tanta glória lhe trouxeram são basicamente compostos de um ou mais formulários de entrada de dados, outros de consulta e visualização desses dados e o banco de dados propriamente dito.

O Cléberson estava acostumado a desenvolver e gerenciar tudo isso de dentro de uma mesma ferramenta, o MS-Acces.

Agora, Cléberson, é hora de dividir. Cada coisa no seu devido lugar, cada ferramenta para o sua devida finalidade. No final a gente integra tudo.

Então teremos:

  • Um sistema de bancos de dados
  • Uma linguagem de programação que possa se comunicar com o banco de dados
  • Uma maneira de fazer “Janelas” com essa linguagem de programação
  • Uma maneira mais fácil de fazer Janelas

Lá vai:

1 – Banco de Dados MySQL

Para armazenamento de dados, as tabelas e consultas, vamos usar o MySQL. O MySQL é um SGDB, Sistema de Gerenciamento de Banco de Dados, que é livre e gratuito. Grandes instituições usam o MySQL e estão satisfeitas, mas o Cléberson também pode usar o MySQL nos seu sistemas, e também ficar satisfeito. Sabia, Cléberson, que o MySQL roda também no Windows?

Não se esqueça, Cléberson, de instalar o MySQL-Query-Browser junto com o servidor MySQL. Vai ficar muito fácil criar tabelas e fazer suas consultas com o Query-Browser.

Ah, Cléberson, me esqueci de avisar que você vai precisar aprender uma linguagem nova, a SQL. SQL é uma linguagem padronizada para consulta e manipulação de dados. SQL não é difícil, Cléberson, vale a pena conhecer. O Próprio Access a utiliza quando você cria uma consulta. Dá uma olhadinha no “modo SQL” das suas consultas no Access. Viu? Aquilo é SQL, mas SQL não precisa ser confusa daquele jeito. É que o Access nao gosta que você saia do modo estrutura, então ele gera um SQL bem confuso pra você se assustar.

2 – Linguagem de Programação Python

Eu sei, Cléberson, que você quer criar logo os formulários de entrada de dados. Mas a gente não está mais dentro do Access. Seus formulários precisam fazer alguma coisa, reagir aos cliques do usuário, gravar alguma coisa no banco de dados e exibir esses dados para o usuário.

Para isso, vamos ter que aprender a programar. Não, Cléberson, isso não é ruim. Essa é a parte mais divertida, e o Access sempre tentou esconder isso de você.

Python é uma linguagem de programação interpretada orientada a objetos.
É de fácil aprendizado e muito versátil. Python também existe para Windows.

Onde o cléberson pode aprender Python:

3 – PyGTK, Python e Janelas GTK

PyGTK é um módulo para python que permite criar interfaces gráficas bonitas e funcionais. A biblioteca base é a GTK, a mesma dos programas do Gnome (aquelas janelas bonitas do Ubuntu).

Um próximo artigo aqui vai dar um exemplo legal de como criar uma janela em PyGTK.

Até lá, google nele.

4 – Desenhando janelas facilmente com Glade

O Glade é uma ferramenta para criação de janelas GTK do modo mais fácil: com o mouse.

Nem vou falar muito aqui sobre o Glade, porque um cara legal resolveu fazer um vídeo super maneiro sobre essa ferramenta. Veja o vídeo e entenda o que é o glade em http://blog.ogmaciel.com/?p=415

Creio que o Cléberson, agora, já tem uma idéia de como se podem fazer programas legais no linux.

Nos próximos artigos nós vamos fazer alguns exercícios juntos. Até lá.

Dos sistemas em access para o Linux

Posted in Linux, Programação with tags , , , , , , , , on 3 / junho / 2008 by medeubranco

Se tem um tipo de usuário que não deve ficar nada feliz com uma migração para plataformas abertas é o Cléberson, o estagiário mini-gênio do MS-Access.

O carinha aprendeu access no curso técnico e gostou do negócio, aprendeu a criar tabelas, consultas, formulários, aprendeu até a brincar um pouco com o VBA. O setor em que ele trabalha, apesar de dispor de equipamentos e infra-estrutura, vivia na idade das trevas em termos de TI, e ele percebeu ali oportunidade de mostrar serviço.

Em poucos dias apresentou à gerência, pronto, seu SIC – Sistema de Informatização das Coisas, e com ele conquistou fama e glória.

Agora os caras vêm querer tirar do Cléberson seu brinquedinho! Que papo de Linux é esse?! E esse tal de OpenOffice?!

Bem, Cléberson, o Linux realmente não tem o Ms-Access. Juro que a migração não foi planejada pra te sacanear, embora pareça. Os caras da TI não gostam de gente invadindo seu território, mas você só participa nessa história de migração como o ponto chave que foi negligenciado.

Mas não, Cléberson, você não deve ficar triste. Essas coisas maravilhosas que você faz com o MS-Access podem ser feitas no Linux com outras ferramentas.

Se você estiver disposto, vou lhe mostrar nos próximos artigos deste blog o MySQL, o python e pygtk. Garanto que você vai rapidinho fazer coisas tão legais quanto fazia com o seu velho amigo MS-Access.