Objetivo:
Nesse blog vamos descrever como desenvolver rapidamente protótipos de interfaces gráficas utilizando o PyQt5.
Há várias ferramentas computacionais poderosas que facilitam o processo de desenvolvimento de interfaces gráficas. Dentre as ferramentas mais populares e genéricas (multi-plataforma) podemos citar o GTK+ (C) e o Qt (C++). Uma comparação entre essas ferramentas pode ser encontrada no link http://www.wikivs.com/wiki/GTK_vs_Qt.
Sem entrar em detalhes, adotamos a última versão do Qt (o Qt5) por ser uma ferramenta mais moderna e que apresenta excelentes recursos (como o Qt Designer e o QML), qualidade gráfica e portabilidade.
O Qt (em inglês se pronuncia "cue -tee") é desenvolvido atualmente pela Digia, uma companhia finlandesa que mantem os direitos da marca Qt. O Qt pode ser utilizado sob lincensa comercial, GPL v3 ou LGPL v2. Para saber mais consulte a página http://qt-project.org
Embora o Qt seja desenvolvido em C++, vamos utilizar as extensões do Qt para Python. A utilização dessas ferramentas acelera o processo de prototipação de interfaces. Nesse blog vamos cobrir apenas alguns fundamentos para facilitar a sua iniciação com o Python e o Qt5, por meio de exemplos (muitos deles tirados de tutorias disponíveis online, mas em inglês). Para saber mais sobre o PyQt5 visite a página http://pyqt.sourceforge.net/Docs/PyQt5/index.html.
Uma interface gráfica (ou GUI de Graphical User Interface) permite que o usuário interaja com a máquina por meio de janelas, ícones, menus e alguma forma de apontamento (como o mouse em computadores desktop, ou touchpads em notebooks, ou diretamente tocando na tela como em tablets e smart phones). Essas interfaces gráficas são também conhecidas como interfaces WIMP (de Windows, Icons, Menus, and Pointing).
Uma interface gráfica é um bom exemplo de programa baseado em eventos. Diferentemente de uma interface de linha de comando, onde o usuário precisa digitar o comando desejado em um terminal, uma interface gráfica oferece várias opções que são visíveis (janelas, ícones e menus) e que podem ser apontadas e selecionadas pelo usuário. Toda vez que o usuário realiza uma ação, por exemplo, um clique do mouse, o sistema operacional gera um evento que deve ser tratado, em sua última instância, pelo objeto que recebeu o clique.
Para se desenvolver uma interface gráfica é necessário definir o conjunto de elementos gráficos que comporão a interface, como esses elementos devem ser colocados na interface (posição de cada elemento na janela), que eventos cada elemento deve responder e as rotinas para tratar cada evento. O design da parte gráfica (definição do posicionamento dos elementos e outras propriedades gráficas) pode ser feito independentemente das rotinas para tratamento dos eventos e, inclusive, o resultado do design gráfico pode ser utilizado como protótipo não funcional para testes preliminares com usuários.
Os elementos gráficos da interface (como os vários tipos de botões e menus) são chamados de widgets (Window Gadgets). A organização (posicionamento) desses elementos na janela é realizada por meio de elementos de layout.
Em aulas anteriores vimos como criar interfaces típicas de aplicações em Desktops de duas formas: