segunda-feira, 28 de dezembro de 2009

Porque Resolvi Usar PyQt.

Eu estudei bastante PyGTK, e baixei manuais de referência e etc, consigo fazer diversas coisas em GTK e já fiz diversos programinhas legais para uso interno, porém surgiu recentemente um projeto maior e tive problemas com o PyGTK:

- Graves instabilidades com o Glade3.
- Biblioteca nativa GTK com limitações para o meu uso.
- Suporte Muito fraco para o windows.

Resolvi então dar uma olhada nas bibliotecas Qt que devido à minha preferência por Gnome eu nunca havia dado uma olhada nelas para programar, logo de cara uma coisa me agradou que foi a nokia estar por trás do projeto, eu gostei disso porque quando uma empresa está coordenando alguma coisa as suas diretrizes são bem definidas, nada contra outro tipo de modelo ou empresa, mas o fato é que isso me tranquilozou um pouco. Os pontos positivos de usar as bibliotecas Qt e o PyQt4 foram:

- Widgets com recursos úteis nativos, por exemplo, o masked entry faz parte do pacote do Qt Designer.

- Qt designer mais estável do que o Glade3, eu ainda não tinha tido problemas com o Glade e percebi que se o trabalho for pequeno ele não nega fogo, porém quando precisei criar interfaces mais complexas me deparei com travamentos e falhas de segmentação esporádicas que atrasaram e muito o meu trabalho, coisa que ainda não aconteceu com o Qt Designer.

- Ferramenta de geração de código faz parte da suíde de desenvolvimento PyQt- pyuic4. A ferramenta que eu utilizava para gerar o código no python era um script que eu encontrei garimpando a internet chamado gladeloader.py, ele é realmente muito bom, porém foi criado por um cara que não faz parte do desenvolvimento principal e não está ligado a nenhum projeto, o que significa que novidades vindas do glade poderiam gerar incompatibilidades com o script o que me faria ter que começar a minha odisséia novamente, temos o tepache que vem nos repositórios de diversas distros porém nunca me dei bem com ele.

- Suporte Excelente em Windows, Symbian, Maemo etc... Isso creio que não preciso comentar né?

Claro que nem tudo são flores, mas visto os benefícios eu decidi mudar todo o programa que eu esava construindo para as bibliotecas Qt, os problemas que estou encontrando são:

- Documentação do PyQt basicamente apenas em inglês e eu não encontrei material atualizado para download, não que inglês seja um encalço muito grande porém ler um documento técnico em sua lingua nativa é bem melhor e com um desenvolvimento mais rápido.

- Diferenças conceituais no manejo de sinais e eventos. As bibliotecas Qt utilizam um conceito diferente de sinais e métodos, eles usam: Sinal, Emissor, Receptor e Slot's; eu estou tendo um pouco de dificuldades de entender isso apropriadamente.

- Arquivo do Qt designer não é aproveitado como no Glade/GTK. No glade, o arquivo glade é aproveitado e no código fica apenas o código de importação do glade e a lógica do programa fica no arquivo python, no Qt designer o código de criação da Gui fica no arquivo .py e , se for o caso, teria que criar uma classe depois importar para o código da lógica, terei que fazer isso.

Fica aí a dica, se alguém como eu está tendo problemas com o PyGTK o PyQt é uma solução, é claro que temos o projeto kiwi entre outros que podem resolver essa situação, mas no meu caso não era apenas as limitações das widgets que estavam me dando dor de cabeça.

4 comentários:

Herberth Amaral disse...

Já que vc gosta de PyQT, dê uma olhadinha nessa IDE: http://eric-ide.python-projects.org/eric-screenshots.html

Feita em Python e PyQT. Acho que vc iria gostar de fuçar o código dela :)

Phiron disse...

Eu até gostei dessa IDE, é realmente boa, porém ela ainda não possui uma ferramenta de autocompletar código tão boa quanto a dupla eclipse+PyDev, por enquanto esses dois andam imbatíveis.
Porém nunca tinha parado para pensar em olhar o código do Eric :D , vai ser realmente muito esclarecedor!

4 disse...

Eu também sou fã do gnome e estou tendo problemas com o Glade se eu instalar o pyqt no gnome isto não derrubaria minha maquina, pois eu não me dou com as interfaces baseadas no QT nem a pau.

Phiron disse...

Pelo menos nas máquinas onde eu testei o PyQt + Gnome não ficou lento, inclusive a aparência para a minha grata surpresa se integrou perfeitamente ao Gnome.
A única coisa notável é uma lag na hora de abrir o programa pela primeira vez.