Saltar para o conteúdo

WxPython

Origem: Wikipédia, a enciclopédia livre.
Ícone de esboço Este artigo sobre programação de computadores é um esboço. Você pode ajudar a Wikipédia expandindo-o.
wxPython
Título a ser usado para criar uma ligação interna é WxPython.

wxPython é um wrapper da biblioteca wxWidgets. Assim como a Tkinter, as aplicações são facilmente portáveis. A diferença é que a wxWidgets utiliza um wrapper sobre a interface gráfica padrão do sistema operacional (GTK em Linux, MFC em Windows), o que permite que as aplicações sejam mais facilmente portáveis e que tenham a aparência de uma aplicação nativa.

Licença

GPL

Plataformas

Unix, Linux, Windows, MacOS X

Vantagens

  • Portabilidade - Aplicações escritas em wxPython rodam praticamente sem problemas em várias plataformas. Esse é provavelmente o principal motivo pelo qual está se tornando bem popular.
  • Componentes ricos - Nesse ponto a wxPython é imbatível. Há todo tipo de componentes, prontamente disponíveis, de telas a caixas de texto que interpretam HTML e até mesmo a Scintilla.
  • Documentação - o wxPython vem com um demo da maioria dos seus widgets que serve como teste e exemplo de uso.

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 - wxWidgets é uma biblioteca com quase 10 anos de idade, que foi sendo remendada precariamente com o passar dos anos. Apesar da wxPython ser um wrapper excelente, muito bem escrito, os problemas da wxWidgets aparecem: API completamente diferente entre alguns componentes e outros, números de ID, macros, etc. Porém tem melhorado bastante a partir da versão 2.5 e o wrapper wxPython oculta bastante a complexidade e idiossincrasias do wxWidgets.
  • 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 wxWidgets. Entretanto, muitas vezes basta seguir o código dos demos (em Python), sem ser necessário recorrer a documentação do wxWidgets.
  • IDEs Livres - O wxDesigner é um IDE bom, mas é comercial. Não há nenhum IDE RAD de qualidade e que seja disponível livremente, embora o BoaConstructor pareça muito promissor.

Exemplo de Código

from wxPython.wx import *

ID_ABOUT = 101
ID_EXIT  = 102

class MyFrame(wx.Frame):
    def __init__(self, parent, ID, title):
        wx.Frame.__init__(self, parent, ID, title,
                         wx.DefaultPosition, wx.Size(200, 150))
        self.CreateStatusBar()
        self.SetStatusText("Esta é a barra de status")

        menu = wx.Menu()
        menu.Append(ID_ABOUT, "&Sobre",
                    "Mais informações sobre este programa.")
        menu.AppendSeparator()
        menu.Append(ID_EXIT, "Sair&", "Sair do proframa")

        menuBar = wx.MenuBar()
        menuBar.Append(menu, "&Arquivo");

        self.SetMenuBar(menuBar)

class MyApp(wx.App):
    def OnInit(self):
        frame = MyFrame(None, -1, "Olá Mundo Usando wxpython")
        frame.Show(True)
        self.SetTopWindow(frame)
        return True

app = MyApp(0)
app.MainLoop()

Ligações externas