associação pythonbrasil[11] django zope/plone planet Início Logado como (Entrar)

Diferenças para "ComparacaoDeGUIs"

Diferenças entre as versões de 3 e 4
Revisão 3e 2003-12-07 02:09:47
Tamanho: 6629
Editor: PedroWerneck
Comentário:
Revisão 4e 2003-12-07 12:53:46
Tamanho: 6767
Editor: PedroWerneck
Comentário:
Deleções são marcadas assim. Adições são marcadas assim.
Linha 5: Linha 5:
Licença: Python (permite escrever livremente softwares comerciais, GPL ou sob qualquer outra licença). '''Licença:''' Python (permite escrever livremente softwares comerciais, GPL ou sob qualquer outra licença).
Linha 7: Linha 7:
Plataformas: Unix, Linux, Windows, MacOS/X '''Plataformas:''' Unix, Linux, Windows, MacOS/X
Linha 9: Linha 9:
Website: http://www.python.org/topics/tkinter/ '''Website:''' http://www.python.org/topics/tkinter/
Linha 12: Linha 12:
Vantagens: '''Vantagens: '''
Linha 20: Linha 20:
Desvantagens: '''Desvantagens:'''
Linha 22: Linha 22:
 * Pobre em Elementos - Faltam muitos elementos importantes, como notebooks e combo box (apesar de estes poderem ser feitos combinando outros componentes). Alguns elementos (listbox por exemplo) são incompletos ou limitados.  * Pobre - Faltam muitos componentes importantes, como notebooks e combo box (apesar de estes poderem ser feitos combinando outros componentes). Alguns elementos (listbox por exemplo) são incompletos ou limitados. Em compensação o componente 'Text' é muito poderoso.
Linha 24: Linha 24:
 * Aparência - A Tkinter usa uma biblioteca interna para acessar diretamente as funções do sistema operacional e desenhar seus próprios elementos na tela. Isso tem a vantagem de ser quase 100% portável, mas a grande desvantagem de ter uma aparência diferente da nativa do sistema operacional. Pessoalmente, quando eu uso Tkinter me sinto 10 anos atrás, usando Windows 3.1 :).  * Aparência - A Tk usa uma função própria para acessar diretamente as funções do sistema operacional e desenhar seus próprios elementos na tela. Isso tem a vantagem de ser mais facilmente portável, mas a grande desvantagem de ter uma aparência diferente da nativa do sistema operacional. Pessoalmente, quando eu uso Tkinter me sinto 10 anos atrás, usando Windows 3.1 :).
Linha 34: Linha 34:
Licença: LGPL '''Licença:''' LGPL
Linha 36: Linha 36:
Plataformas: Unix, Linux, Windows(Beta) '''Plataformas:''' Unix, Linux, Windows(Beta)
Linha 38: Linha 38:
Website: http://www.daa.com.au/~james/software/pygtk/ '''Website:''' http://www.daa.com.au/~james/software/pygtk/
Linha 41: Linha 41:
Vantagens: '''Vantagens:'''
Linha 51: Linha 51:
Desvantagens: '''Desvantagens:'''
Linha 63: Linha 63:
Licença: GPL '''Licença:''' GPL
Linha 65: Linha 65:
Plataformas: Unix, Linux, Windows, MacOS/X '''Plataformas:''' Unix, Linux, Windows, MacOS/X
Linha 67: Linha 67:
Website: http://www.wxpython.org '''Website:''' http://www.wxpython.org
Linha 70: Linha 70:
Vantagens: '''Vantagens:'''
Linha 77: Linha 77:
Desvantagens: '''Desvantagens:'''
Linha 120: Linha 120:
Apesar de estar atualmente "em moda", existe um nicho muito pequeno de aplicações onde a wxPython é a melhor opção, que são justamente aplicações multiplataforma que ''precisam'' funcionar com pouca ou nenhuma alteração em Windows e Linux e que a Tkinter não seja suficiente (ou desejável). Mesmo assim, wxPython tem muitos bugs sérios que tem de ser considerados dependendo da aplicação. Apesar de estar atualmente "em moda", existe um nicho muito pequeno de aplicações onde a wxPython é a melhor opção, que são justamente aplicações multiplataforma, que ''precisam'' funcionar com pouca ou nenhuma alteração em Windows e Linux e que a Tkinter não seja suficiente (ou desejável). Mesmo assim, wxPython tem muitos bugs sérios que tem de ser considerados dependendo da aplicação.
Linha 122: Linha 122:
No desenvolvimento de aplicações para Linux, na minha opinião não há dúvidas: PyGTK. Além de poder usar Glade e ter disponíveis componentes poderosos, a biblioteca integra perfeitamente com o GNOME (usando pygnome). No desenvolvimento de aplicações para Linux, na minha opinião não há dúvidas: PyGTK. Além de poder usar Glade e ter disponíveis componentes poderosos, a biblioteca se integra perfeitamente com o GNOME (usando pygnome).

Tkinter

Baseada em Tcl/Tk, a Tkinter acompanha a distribuição oficial do interpretador Python. Muitos consideram a melhor coisa do mundo, outros vão gargalhar e dizer que é horrível, principalmente pela performance e aparência, mas vai continuar sendo a biblioteca padrão da linguagem Python por um bom tempo.

Licença: Python (permite escrever livremente softwares comerciais, GPL ou sob qualquer outra licença).

Plataformas: Unix, Linux, Windows, MacOS/X

Website: http://www.python.org/topics/tkinter/

Vantagens:

  • Portabilidade - Programas escritos usando a Tkinter são portáveis livremente entre Linux, Unix, Windows e Mac(?), além da garantia de que qualquer um poderá executar o programa sem precisar instalar bibliotecas extras.
  • Aprendizado - Tem uma API simples de se aprender e fácil de lembrar.
  • Documentação - Muito bem documentada, com inúmeros tutoriais e referências de ótima qualidade disponíveis na Web.

Desvantagens:

  • Pobre - Faltam muitos componentes importantes, como notebooks e combo box (apesar de estes poderem ser feitos combinando outros componentes). Alguns elementos (listbox por exemplo) são incompletos ou limitados. Em compensação o componente 'Text' é muito poderoso.
  • Aparência - A Tk usa uma função própria para acessar diretamente as funções do sistema operacional e desenhar seus próprios elementos na tela. Isso tem a vantagem de ser mais facilmente portável, mas a grande desvantagem de ter uma aparência diferente da nativa do sistema operacional. Pessoalmente, quando eu uso Tkinter me sinto 10 anos atrás, usando Windows 3.1 :).
  • Performance - O desempenho é horrível tendo em vista o que a biblioteca oferece.

PyGTK

É um wrapper para o GIMP Toolkit (GTK) a biblioteca usada pelo GNOME e muitas outras aplicações para Linux. Tem ótimo desempenho, elementos ricos e visual agradável.

Licença: LGPL

Plataformas: Unix, Linux, Windows(Beta)

Website: http://www.daa.com.au/~james/software/pygtk/

Vantagens:

  • Desempenho - PyGTK 0.X (para GTK 1.2) tem provavelmente o melhor desempenho entre todas as bibliotecas avaliadas aqui. A versão 2.0 (para gtk 2.X) não tem o mesmo desempenho, mas é bem satisfatória.
  • Documentação - Bem documentada. Existem bons tutoriais para ambas as versões. Apesar de não haver uma referência completa para PyGTK 0.X, existe uma muito boa para a versão 1.9X, 2.X.
  • API - PyGTK usa uma API eficiente, baseada em propagação de sinais e callbacks. Um elemento qualquer emite um sinal, que é propagado "pra cima" até ser capturado e gerar a chamada de um callback.
  • IDE - Possui uma ferramenta para construção de interfaces, o Glade, que permite gerar uma referência em XML da interface que pode ser usado diretamente pela biblioteca.

Desvantagens:

  • Portabilidade - Rodar aplicações usando PyGTK em Windows é uma tarefa complicada.
  • Tamanho do código - Muito do código escrito em PyGTK chega a parecer redundante, mas é necessário. Por exemplo, para usar um elemento qualquer precisamos criá-lo, chamando a classe, configurá-lo através dos seus métodos de configuração, posicioná-lo e por fim mostrá-lo com o método show(). São no mínimo três chamadas de métodos pra cada objeto. Como resultado disso temos arquivos de código fonte imensos. Linhas e mais linhas de código necessárias para se fazer qualquer coisa.

wxPython

wxPython é um wrapper da biblioteca wxWindows. Assim como a Tkinter, as aplicações são facilmente portáveis. A diferença é que a wxWindows utiliza um wrapper sobre o padrão do sistema operacional (GTK em Linux, MFC em Windows) o que permite que as aplicações sejam mais facilmente portáveis e tenham a aparência de uma aplicação nativa do sistema operacional. Em compensação, o desempenho vai ladeira abaixo com o acréscimo de mais uma camada entre a aplicação e o sistema operacional.

Licença: GPL

Plataformas: Unix, Linux, Windows, MacOS/X

Website: http://www.wxpython.org

Vantagens:

  • Portabilidade - Aplicações escritas em wxPython rodam praticamente sem problemas em várias plataformas. Esse é provavelmente o principal (senão o único) motivo pelo qual a wxPython está se tornando bem popular.
  • Elementos ricos - Nesse ponto a wxPython é imbatível. Há todo tipo de elementos gráficos, prontamente disponíveis, de telas a caixas de texto que interpretam HTML e até mesmo a Scintilla.

Desvantagens:

  • Desempenho - A performance das aplicações em si não é ruim. O problema é o uso de memória e o tempo de inicialização.
  • Instabilidade - Mesmo estando ativamente em desenvolvimento, ainda tem alguns problemas de estabilidade. No mínimo 10% das mensagens na lista wxPython são reportando bugs.
  • API complicada - wxWindows é uma biblioteca com quase 10 anos de idade, que foi sendo remendada precariamente com o passar dos anos. Apesar do wxPython ser um wrapper excelente, muito bem escrito, os problemas da wxWindows aparecem: API diferente entre alguns elementos e outros, números de ID, macros, etc.
  • Aprendizado - Complicado de aprender graças à API mal planejada (50% ou mais das mensagens na lista wxPython são de iniciantes com problemas). Além disso, os nomes de classes encorajam o uso de "from wx import *" (aliás, mesmo problema da PyGTK 0.X, para GTK 1.2).
  • Documentação - Apesar de alguns tutoriais razoáveis, há pouca documentação específica para wxPython. Para uma referência da biblioteca tem de se recorrer à referência da wxWindows.
  • IDEs Livres - O wxDesigner (http://www.roebling.de/) é um IDE bom, mas é comercial. Não há nenhum IDE RAD de qualidade e que seja disponível livremente, embora o Boa Constructor pareça muito promissor.

PyQT

XXX

PyFLTK

XXX

Fox

XXX

Anigui

XXX

Conclusão

Se você não tiver algum bom motivo para não usá-la, a Tkinter é uma opção razoável.

Apesar de estar atualmente "em moda", existe um nicho muito pequeno de aplicações onde a wxPython é a melhor opção, que são justamente aplicações multiplataforma, que precisam funcionar com pouca ou nenhuma alteração em Windows e Linux e que a Tkinter não seja suficiente (ou desejável). Mesmo assim, wxPython tem muitos bugs sérios que tem de ser considerados dependendo da aplicação.

No desenvolvimento de aplicações para Linux, na minha opinião não há dúvidas: PyGTK. Além de poder usar Glade e ter disponíveis componentes poderosos, a biblioteca se integra perfeitamente com o GNOME (usando pygnome).


PedroWerneck (esperando outros colaborarem com este artigo :) )