wxPython, uma Biblioteca GUI multi-plataforma(Parte 1)



O Que é wxPython ?

    WxPython esta no Rank dos toolkits que permite escrever aplicações-GUI multi-plataformas no estilo de pyQT, pyGTK ou Tkinter. Mas sob janelas, e sem parecer Tkinter ou pyGTK, uma Aplicação wxPython tem um visual muito similar ao que você poderia obter com uma aplicação usando uma GUI Microsoft nativa, como MFC[1]. Isto é possível porque o WxPython é uma espécie de camada fina em cima das classes GUI nativas. Além disso, wxPython é muito simples para aprender e tomar vantagem do que é possível que o Python oferece. Pro exemplo, a manipulação de eventos é particularmente bom sob o wxPython. A biblioteca wxPython vem de uma outra biblioteca para C++ chamada wxWidgets(http://www.wxwidgets.org), formalmente chamada de wxWindows(Ela data de 1992[2],sendo agora muito estável, eficiente e orientada a objetos, rodando em Windows,Unix(GTK/Motif/Lesstif) e em Macintosh.

[1] Microsoft Foundation Classes

[2] É quase tão velha quanto Tkinter - com data anterior a 1990

Pré-requisitos

    Nós assumimos que você leu e tem o conhecimento suficiente sobre Python e está familiarizado com classes e objetos em Python[3]/
    Não são necessários outros conhecimentos em outras áreas.

[3] Se você ainda nao é um Pythonista, pode querer dar uma olhada em:
http://www.freenetpages.co.uk/hp/alan.gauld/

Instalação

Linux

* RedHat

    Você pode procurar os RPMs para Redhat no endereço(Eles estão funcionando bem com Fedora,Mandriva e Mandrake):

    http://wxpython.org/download.php

* Debian

    WxPython pode ser instalado com o apt-get digitando como root:

    apt-get install python-wxgtk2.4

   
apt-get install python-wxgtk2.6

Dependendo da versão que você deseja. O pacote com os demos do wxPython estão em uma pacote wx-examples. Pode ser instalado com:

apt-get install wx2.4-examples ou apt-get install wx2.6-examples

Uma vez instalado, você precisa copiar /usr/share/doc/wx2.[4|6]-examples/examples/wxPython para um diretório que você possa editar. Você precisa descompacta o arquivo comprimido. Você pode fazer isso com este simples script:

for i in *.gz; do
gunzip $i
done

Você pode rodar os demos digitando:

python demo.py

* Gentoo

    wxPython pode ser instalado com o portage digitando:

    emerge wxpython

* Ubuntu

Este é um conjunto de pacotes mantido por um time do wxPython para o Ubuntu 6.06(Dapper Drake) para sistemas baseados em i386, é sabido que se está funcionando bem também no Ubuntu 6.10(Edgy Eft). Você pode obtê -los adicionando as seguintes linhas abaixo no seu /etc/apt/source.list:

    # wxPython APT repository at wxcommunity.com
deb http://wxpython.wxcommunity.com/apt/ubuntu/dapper /
deb-src http://wxpython.wxcommunity.com/apt/ubuntu/dapper /

Depois de adicionar as informações dos repositórios em /etc/apt/sources.list , você pode buscar e instalar os pacotes usando um gerenciado de pacote gráfico com o Synaptic ou o Adept, ou ainda rodando os seguintes comandos abaixo em uma janela de terminal:
    sudo apt-get update
sudo apt-get install python-wxgtk2.8 python-wxtools wx2.8-i18n

Estes pacotes (e suas dependências) pode vir a substituir mais cedo versões do wxPython e do wxGTK in algumas series de lançamentos que possam a vir serem instaladas previamente.


* Microsoft Windows

   A instalação no Windows é simples: Execute o instalador que você pegar em:

    http://www.wxpython.org/download.php e siga as instruções.

* Construindo pelo Source
   
    Você pode querer instalar o wxPython pelo Source. Para fazer isto, siga estes três passos:

Instalando o Python

Você já deve ter feito isso. Use o site do Python para ter alguma referência amais de instalação, provavelmente sua distribuição já traz incluso o Python.

    http://python.org/

    http://www.pythonbrasil.com.br/moin.cgi/

Instalando o wxGTK

wxGTK is a versão do GTK para wxWidgets. GTK(Gimpl ToolKit) é uma biblioteca gráfica usada pelo Gnome, mas provavelmente está instalado na sua distribuição Linux. Tudo que você tem que fazer é baixar o source do wxGTK do site:

    ftp://wesley.informatik.uni-freiburg.de/pub/linux/wxxt/source/

Ou do site do wxWidgets:

    http://www.wxwidgets.org/

       tar -zxvf wxGTK-2.2.5.tar.gz

Você pode receber alguns erro aqui se o  GTK não foi instalado ou se os arquivos incluidos para o GTK não foram instalados(no Mandrake, gtk+-devel-1.2.8-6mdk.i586.rpm é um rpm que você tem que instalar)

Você deve compilar uma versão para o wxGTK. Para instalar

Sua senha do root é necessária aqui.


Isto é possível quando a biblioteca não é instalado, enquanto o wxPython espera por isto. (No Mandrake 7.2, voc%e deve instalar o wxGTK no arquivo /usr/lib, sem que automaticamente ele instala em /usr/local/lib) A solução para isso é a criação de um link simbólico para a biblioteca, você deve fazer isto:


Instalando o wxPython

    http://wxpython.org/download.php#sources

	tar -xvzf wxPython-2.2.5.tar.gz
	cd wxPython-2.2.5

Sua senha do root é necessária aqui.

O wxPython deve estar funcionando!

* Mac OS X

Você deve primeiro seguir as instruções descritas aqui:

    http://wxpython.org/builddoc.php

Um howto em frances pode ser encontrado em:

    http://d3in.homelinux.org/%7Eca/files/doc/macos_wxpython.html

Uma Aplicação: "Ola Mundo!"

   1 import wx
2 app = wx.PySimpleApp()
3 frame = wx.Frame(None, -1, "Hello World")
4 frame.Show(1)
5 app.MainLoop()

   1         wx.Frame(Parent, Id, "Hello World")

[4] Isto pode uma janela de uma aplicação normal, um frame MDI,etc...


Obs.: Está primeira parte é uma tradução livre parcial do artigo Getting Started, escrito por Ted Bell em http://wiki.wxpython.org/index.cgi/Getting_Started

Infomações tiradas de:
    http://wxpython.org/


Comentário Final

Na primeira parte desta série de artigos, nós vimos toda a parte de instalação do wxPython na maioria das distribuições Linux e ainda em sistemas Microsoft Windows e Mac OS X. E ainda uma simples aplicação demonstrativa "Ola Mundo!" , na Segunda Parte, nós veremos como construir uma aplicação funcional com a biblioteca wxPython e ainda como trabalhar com janelas. Aguardem!

Obrigado pela atenção
Abraços
Matheus Santana Lima
http://www.matheussantanalima.x-br.com/
matheusslima@yahoo.com.br