Você está na página 1de 2

26/12/2020 Desenvolvimento de interfaces gráficas

Desenvolvimento de interfaces gráficas


utilizando PyQt5
Objetivo:

Nesse blog vamos descrever como desenvolver rapidamente protótipos de interfaces gráficas
utilizando o PyQt5.

Fundamentos
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.

Antes de continuar ...


Você deve instalar os seguintes softwares:

Python 3.x. Disponível a partir da página: https://www.python.org/downloads.


Qt 5. Disponível a partir da págin: http://qt-project.org/downloads.
PyQt5. Disponível a partir da
páginahttp://pyqt.sourceforge.net/Docs/PyQt5/index.html

Programação de interfaces gráficas

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
https://www.ime.usp.br/~hitoshi/cursos/qt5/ 1/2
26/12/2020 Desenvolvimento de interfaces gráficas

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:

1. diretament no PyQt5 e
2. usando o Qt Designer, e depois acessando os elementos da interfaces no PyQt.

O QML é uma linguagem declarativa que permite a criação de interfaces fluidas, típicas de
plataformas móveis, mas também apropriadas para Desktop. Clique em Usando o Quick Qt
para saber mais sobre o QML e o Qt Quick.

https://www.ime.usp.br/~hitoshi/cursos/qt5/ 2/2

Você também pode gostar