este artigo foi originalmente publicado em maio de 2016 e foi atualizado com novas informações.
Há um tempo na jornada da maioria dos programadores quando eles estão prontos para se ramificar para além dos exemplos básicos e começar a construir uma interface gráfica para o seu programa.
em Python, os passos para começar com a programação GUI não são terrivelmente complexos, mas eles exigem que o usuário comece a fazer algumas escolhas., Por sua natureza como uma linguagem de programação de propósito geral com intérpretes disponíveis em todos os sistemas operacionais comuns, Python tem que ser bastante agnóstico quanto às escolhas que apresenta para a criação de interfaces gráficas de usuário.
Felizmente, Existem muitas opções disponíveis para programadores que procuram criar uma maneira fácil para os usuários interagir com seus programas. Bindings existem para vários frameworks UI em uma variedade de plataformas, incluindo aqueles nativos Para Linux, Windows e Mac, e muitos que trabalham em todos os três.,
Antes de ir mais longe, seja o seu próprio advogado do diabo por um momento e pergunte: realmente faz sentido para a sua aplicação ter uma interface gráfica tradicional de usuário em tudo? Para alguns programas, a resposta é óbvia. Se sua aplicação é inerentemente gráfica, e é otimizada para ou apenas faz sentido para ser executado localmente em uma única máquina local, então sim, você provavelmente deve considerar a construção de uma interface gráfica desktop. Muitas vezes, isso é óbvio pelo que você está projetando.
mas para programas de finalidade geral, não conte nem a linha de comando nem uma interface web., A linha de comando oferece muitas vantagens-velocidade, acesso remoto, reutilização, scriptabilidade e controle—que pode ser mais importante para os usuários de sua aplicação do que uma interface gráfica, e há muitas bibliotecas como Click, Cement, e Cliff que tornam mais fácil de projetar grandes programas de linha de comando.
da mesma forma, uma interface web, mesmo para um programa destinado a ser executado localmente, pode ser uma opção que vale a pena considerar, particularmente se você acha que seus usuários podem desejar hospedar sua aplicação remotamente, e projetos como Django, Flask, ou Pyramid tudo tornar isso simples., Você pode até usar uma biblioteca como o pywebview para colocar um invólucro fino em torno de uma aplicação web em uma janela gráfica nativa.
alternadamente, você pode usar um framework como Pyforms para construir uma experiência consistente em toda a web, linha de comandos e desktop, tudo com uma única base de código.ainda tem a certeza que quer construir uma interface gráfica? Ótimo, Aqui estão algumas fantásticas bibliotecas de código aberto para começar.,
PyQt, PySide, e Qt para Python
PyQt implementa o popular biblioteca Qt, e por isso, se você está familiarizado com o desenvolvimento do Qt em outro idioma, talvez, desde o desenvolvimento de aplicativos nativos para o KDE ou outro Qt baseado no ambiente de trabalho, você pode já estar familiarizado com o Qt. Isto abre a possibilidade de desenvolver aplicações em Python que tenham uma aparência familiar em muitas plataformas, aproveitando as ferramentas e o conhecimento da grande comunidade Qt.
Qt está bem estabelecido na comunidade de desenvolvedores e tem ferramentas refletindo isso., Escrever aplicações em Python em torno do Qt significa que você tem acesso ao QtCreator, que possui um modo de designer para gerar código para o layout da sua aplicação.
PyQt é Dual licensed under both a commercial and GPL license, not unlike Qt project itself, and the primary company supporting PyQt offers a license FAQ to help Under Under understand what this means for your application.
para outra opção para usar bibliotecas Qt com Python, considere o Qt para Python (comumente conhecido como PySide2), disponível sob o LPGL.,
Tkinter
Se houvesse um único pacote que pudesse ser chamado de o “padrão” GUI toolkit para Python, ele seria o Tkinter. A vantagem de escolher o Tkinter é o vasto número de recursos, incluindo livros e amostras de código, bem como uma grande comunidade de usuários que podem ser capazes de ajudá-lo se você tiver perguntas. Exemplos simples são fáceis de começar e razoavelmente legíveis pelo homem.,
Tkinter está disponível sob a licença Python, no topo da licença BSD de Tcl / Tk.
WxPython
WxPython traz a biblioteca wxWidgets cross-platform GUI de seu C++ nativo para Python. WxPython parece um pouco mais nativo do que Tkinter em diferentes sistemas operacionais porque ele usa os widgets do sistema hospedeiro para construir uma interface gráfica. É bastante fácil começar também, e tem uma crescente comunidade de desenvolvedores. Você pode precisar agrupar wxPython com suas aplicações, ou então exigir que o usuário instale por conta própria, uma vez que não é instalado automaticamente com Python.,
WxPython usa a licença da Biblioteca wxWindows de seu projeto-mãe, que é aprovado pela OSI.
Python GTK+ 3
anteriormente conhecido como PyGTK, o projeto Python GTK+ 3 fornece ligações em Python para objetos GTK (windows, widgets, e assim por diante). GTK+ é mais conhecido como a Fundação para o desktop GNOME, mas está disponível para aplicações independentes em Linux, Windows e Mac. Com o Python GTK+ 3, o mesmo framework está disponível para seus projetos Python.
Quando usar o Python GTK+ 3, poderá usar muitas das mesmas ferramentas de desenvolvimento criadas para o próprio GTK+., Mais notavelmente, isso inclui Glade, um designer de interface para aplicações GTK+. As Interfaces projetadas no Glade são salvas como XML e usadas pelo objeto GtkBuilder em seu código de aplicação, mas a interface que você usa é drag-and-drop, tornando fácil criar uma UI dinâmica e responsiva sem ter que traduzir o que você vê em sua mente em código de layout.
Kivy
Built with rapid development and modern devices in mind, Kivy is a toolkit for Linux( including the Raspberry Pi), Windows, Mac, and Android., O projeto está focado em “interfaces de usuário inovadoras”, e tem sido usado para aplicações multimídia, como aplicativos de controle de música para telefones para aplicações de whiteboarding que ocupam toda a parede de uma sala de reuniões.
Kivy não tem um programa de layout visual como QtCreator e Glade, mas usa sua própria linguagem de design para ajudá-lo a associar layout UI com objetos de código. Isso torna mais fácil para você compartimentar (tanto mentalmente quanto no código de layout) as classes e funções em sua aplicação., O Kivy também hospeda o jardim Kivy, um repositório de widgets criados pelo utilizador e add-ons, por isso, se estiver a pensar criar algo que o próprio Kivy não fornece, poderá já existir no Jardim.
estas não são as únicas escolhas que você tem disponível para você, nem mesmo por um tiro no escuro. Para mais opções, confira a página “programação GUI em Python” no wiki oficial da Fundação de software Python, que lista dezenas de outras ferramentas. Soluções estão disponíveis para ligar Python a muitas bibliotecas de widget diferentes e ferramentas GUI, tais como FLTK, FOX, e muitos outros., Embora os iniciantes devem provavelmente evitar projetos que fornecem apenas implementações parciais, ou aqueles que já não são mantidos ativamente, existem muitas boas ferramentas para uma variedade de situações.
muitas das opções lá fora são para aplicações tradicionais que assumem a aparência e sensação windowed de seu ambiente de trabalho pai, mas há também momentos em que você pode querer fazer algo completamente diferente, por exemplo, dentro de um jogo de vídeo. Existem grandes bibliotecas para essas situações também, como pygame, pyglet, e Panda3d.
Leave a Reply