Olá programadores e programadoras! Tudo certo com vocês? Espero que sim!
Essa é o primeiro capítulo do nosso curso de Interface Gráfica do Usuário (GUI, em inglês Graphical User Interface) utilizando a linguagem Python e a biblioteca PySide2. Mas por que usaremos o Python e PySide2 nessas aulas? Eis aqui alguns motivos:
Python é uma das linguagens mais usadas atualmente;
É uma linguagem de fácil entendimento;
A biblioteca PySide2 é muito versátil, fácil de encontrar projetos e simples de manusear;
As aplicações geradas com PySide2 podem ser multiplataforma;
Os aplicativos gerados com essa biblioteca não necessitam disponibilizar o código caso você comercialize o aplicativo e;
A biblioteca PySide2 conta com uma GUI para desenhar as aplicações sem a necessidade de escrever o código.
A Interface Gráfica do Usuário tem uma longa e venerável história que remonta à década de 1960. O NLS (oN-Line System) de Stanford introduziu o conceito de mouse e janelas, demonstrado publicamente pela primeira vez em 1968. Isso foi seguido pela GUI do sistema Xerox PARC Smalltalk 1973, que é a base da maioria das GUIs modernas de uso geral.
Esses primeiros sistemas já tinham muitos dos recursos que consideramos garantidos nas GUIs de desktop modernas, incluindo janelas, menus, botões de opção, caixas de seleção e ícones posteriores. Essa combinação de recursos nos deu o primeiro acrônimo usado para esses tipos de interface: WIMP (windows [janelas], icons [ícones], menus e dispositivo apontador – um mouse).
Em 1979, foi lançado o primeiro sistema comercial com interface gráfica – a estação de trabalho PERQ. Isso estimulou uma série de outros esforços de GUI, incluindo notavelmente o Apple Lisa (1983), que adicionou o conceito de barra de menu e controles de janela. Assim como muitos outros sistemas do Atari ST (GEM), Amiga. No UNIX (e posteriormente no Linux), o X Window System surgiu em 1984. A primeira versão do Windows para PC foi lançada em 1985.
As primeiras GUIs não foram o sucesso instantâneo que poderíamos supor, devido à falta de software compatível no lançamento e aos requisitos de hardware caros – especialmente para usuários domésticos. Lentamente, mas de forma constante, a interface GUI tornou-se a forma preferida de interagir com computadores e a metáfora WIMP tornou-se firmemente estabelecida como padrão. Isso não quer dizer que não tenha havido tentativas de substituir a metáfora WIMP no desktop. Microsoft Bob (1995), por exemplo, foi a tentativa muito difamada da Microsoft de substituir o desktop por uma casa.
Figura 5: Microsoft Bob (1995).
Não faltaram outras GUIs aclamadas como revolucionárias em sua época, desde o lançamento do Windows 95 (1995) até o Mac OS X (2001), GNOME Shell (2011), Windows 10 (2015) e Windows 11 (2021). Cada um deles revisou as UIs de seus respectivos sistemas de desktop, muitas vezes com muito alarde. Mas fundamentalmente nada realmente mudou. Essas novas UIs ainda são sistemas WIMP e funcionam exatamente da mesma maneira que as GUIs desde a década de 1980.
Quando a revolução chegou, era mobile, o mouse foi substituído pelo toque e as janelas por aplicativos de tela inteira. Mas mesmo num mundo onde todos andamos com smartphones no bolso, uma enorme quantidade de trabalho diário ainda é feito em computadores desktop. O WIMP sobreviveu a mais de 40 anos de inovação e espera sobreviver por muitos mais.
Qt é um kit de ferramentas de widget gratuito e de código aberto para a criação de aplicativos GUI multiplataforma, permitindo que os aplicativos sejam direcionados a várias plataformas de Windows, macOS, Linux e Android com uma única base de código. Mas o Qt é muito mais do que um kit de ferramentas de widget e recursos integrados de suporte para multimídia, bancos de dados, gráficos vetoriais e interfaces MVC; é mais correto pensar nele como um framework de desenvolvimento de aplicativos.
O Qt foi iniciado por Eirik Chambe-Eng e Haavard Nord em 1991, fundando a primeira empresa Qt, Trolltech, em 1994. O Qt é atualmente desenvolvido pela The Qt Company e continua a ser atualizado regularmente, adicionando recursos e estendendo o suporte mobile e multiplataforma.
PySide2, também conhecido como Qt para Python, é uma ligação Python do kit de ferramentas Qt, atualmente desenvolvido pela The Qt Company. Quando você escreve aplicativos usando PySide2, o que você está realmente fazendo é escrever aplicativos em Qt. A biblioteca PySide2 é simplesmente (Não é tão simples assim) um wrapper em torno da biblioteca Qt do C++, para permitir que ela seja usada em Python.
Como esta é uma interface Python para uma biblioteca C++, as convenções de nomenclatura usadas no PySide2 não aderem aos padrões PEP8. Mais notavelmente, funções e variáveis são nomeadas usando mixedCase em vez de snake_case. Depende inteiramente de você aderir a esse padrão em seus próprios aplicativos, no entanto, acho que foi útil seguir os padrões Python para seu próprio código, para ajudar a esclarecer onde o código PySide2 termina e o seu começa.
Por último, embora exista documentação específica do PySide2 disponível, muitas vezes você se verá lendo a própria documentação do Qt, pois ela é mais completa. Se fizer isso, você precisará traduzir a sintaxe do objeto e alguns métodos contendo nomes de funções reservados para Python, como segue:
Tabela 1: Tabela de correspondência de Qt para PySide2.