[TUTORIAL] Python e Qt 5 [Parte 1]

Olá a todos do fórum :grinning: !

Tenho recebido um feedback muito bom do tópico:

E tenho recebido com frequência a pergunta:

Existe uma forma de se desenhar as interfaces de forma visual no Qt e depois integrar essa interface com a linguagem Python?

:tada: Sim é possível :confetti_ball:.

Essa duvida é extremamente válida, uma vez que na maior parte dos tutoriais para Python vemos as pessoas desenhando a interface diretamente no código Python (falaremos disso mais a frente).

Para iniciarmos precisamos entender que o Python possui diversos bindings para Qt 5, os 2 que julgo principais são:

  • PySide2: Este é o bind oficial do Qt que foi lançado em 2018 para o Python, este projeto também é conhecido como Qt for Python.
  • PyQt5: Este é um do bindings mais utilizados e sem duvidas um dos mais conhecidos, inclusive darei preferencia a ele nos textos. O PyQt5 é desenvolvido e mantido pela Riverbank Computing.

Já para o designe das interfaces podemos utilizar:

  • Qt Creator: Esta é a IDE (Ambiente Integrado de Desenvolvimento) oficial do Qt. Ela permite o desenvolvimento de interfaces em XML e QML.
  • Qt Designer: Esta é uma ferramenta que tem foco apenas no designe da interface (XML).

Qt

O Qt é um toolkit multi-plataforma (C++) que permite o desenvolvimento de software para desktops (Windows, OS X, Linux) e dispositivos móveis (Android e iOS).

Dentre os aplicativos que utilizam o Qt no seu desenvolvimento podemos destacar:

  • Kdenlive.
  • Krita.
  • Virtualbox.
  • VLC.
  • Entre outros.

Sua influencia também pode ser vista nos projetos KDE e LXQt.

Apesar de possuir bindings para diversas linguagens de programação o Qt também possui 2 linguagens próprias, o QML e o QtScript, sendo o QML amplamente utilizado atualmente.

Licenças

Atualmente o Qt possui 3 licenças:

Licença comercial: Esta licença licença permite a criação de aplicativos comerciais sem a necessidade de se compartilhar o código fonte. Ao utilizar esta licença também temos acesso a diversas ferramentas do Qt que não estão disponíveis nas outras formas de licenciamento.

Licença LGPL: Library GPL, esta é uma variação da licença GPL que permite o desenvolvimento de programas de código aberto que contenham módulos proprietários.

Licença GPL: Na GPL todo o código do programa é aberto, isso atende bem à maioria dos projetos colaborativos.

OBS: Não achei informações claras sobre as licenças do Qt, se alguém tiver mais informações agradeço.

OBS: Para o código que vamos desenvolver o Qt Designer é mais que suficiente, visto que instalar o Qt Creator irá demandar bastante espaço em disco e downloads relativamente grandes!

Qt Designer

O Qt Designer é uma ferramenta que permite projetar/construir interfaces gráficas de forma visual (WYSIWYG).

Os arquivos gerados pelo Qt Designer possuem a extensão *.ui e seu conteúdo é do tipo XML.

XML: Do inglês eXtensible Markup Language, é uma linguagem de marcação recomendada pela W3C para a criação de documentos com dados organizados hierarquicamente.

Os 3 tipos de janelas que podem ser construídas com o Qt Designer estão:

  • Widget: Tipo mais simples de janela.
  • MainWindows: Este tipo de janela herda da janela do tipo Widget e nela podemos ter barra de menus e barra de status.
  • Dialog: Janelas de dialogo são comumente utilizadas para gerar alertas ou interações com o usuário.

A instalação do Qt Designer pode ser realizada da seguinte forma:

Ubuntu:

sudo apt install qttools5-dev

Fedora:

sudo dnf install qt5-qttools qt5-designer

Windows:

python -m pip install pyqt5-tools

No Windows o executável do Qt Designer pode ser localizado nos diretórios:

instalação\do\python\Lib\site-packages\pyqt5_tools\designer.exe

ou

instalação\do\python\Scripts\designer.exe

OBS: O caminho completo até o executável irá depender do local onde foi realizada a instalação do Python ou o local onde o ambiente virtual (pyenv, pipenv, virtualenv) foi criado!

Após localizar o executável, basta clicar com o botão direito e criar um atalho.

Em sistemas Linux basta procurar no menu iniciar da sua distribuição.

Qt Creator

Qt Creator é um IDE (Ambiente Integrado de Desenvolvimento) multiplataforma.

Comparado ao Qt Designer o Qt Creator é uma ferramenta muito mais completa, visto que ela vai muito além da prototipagem da interface, contudo ela tem foco no desenvolvimento com C/C++.

Enquanto o Qt Desginer trabalha somente com interfaces em XML o Qt Creator nos permite utilizar também o Qt Quick, que no lugar do XML utiliza QML.

O Qt creator possui basicamente 2 versão:

  • Commercial: Versão paga da IDE.
  • Open Source: Versão gratuita da IDE.

A diferença entre os recursos pode ser vista na própria página de download.

O site oficial do Qt fornece para sistemas Linux um instalador online do tipo run.

Nota: O Qt Creator está disponível nos repositórios de algumas distribuições Linux, contudo a versão pode não ser a mais atual e pode existir a necessidade de configurações adicionais.

No caso do Ubuntu um comando que talvez funcione é:

sudo apt install build-essential \
    qtcreator \
    qt5-default \
    qt5-doc \
    qt5-doc-html \
    qtbase5-doc-html \
    qtbase5-examples

Contudo recomendo a instalação do site oficial.

Após realizar o download do instalador, de permissão de execução ao mesmo, para isso:

sudo chmod +x NomeDoAquivo.run

Agora basta executar o arquivo com o comando:

./NomeDoArquivo.run

Com isso o instalador do Qt Creator será iniciado.

Na tela que é exibida podemos clicar em Settings para configurar o proxy ou mesmo os repositórios, caso não haja a necessidade de realizar configurações clique em Next:

Agora podemos:

  • Fazer login na conta do Qt
  • Criar uma nova conta.
  • Ou simplesmente ignorar esta etapa clicando em Skip:

Após fazer login (ou não) é exibido a tela de boas vindas, clique em Next:

Nesta etapa o instalador irá atualizar os dados dos repositórios, quando o mesmo terminar clique em Next:

Agora é possível escolher o local onde o Qt Creator será instalado. Após definir o local clique em Next

Agora podemos selecionar a versão do Qt e os pacotes que serão instalados,

Caso você erre neste passo não se preocupe é possível volta a este passo posteriormente.

Após selecionar os pacotes necessários ao seu projeto. Clique em Next:

Termos (licença) de uso do Qt, caso esteja de acordo clique em Next:

Agora o instalador exibe o espaço em disco que será necessário, clique em install:

Na tela seguinte é iniciado o download e instalação dos pacotes necessários. Aguarde até o final da instalação:

Por fim clique em Finish:

No Windows o instalador é do tipo exe, bastando dar 2 cliques sobre o mesmo e seguir o mesmo procedimento de instalação.

Com isso temos as ferramentas que irão permitir o designe da interface e no próximo texto/tópico vamos começar a brincar com o código.

Caso você ainda não tenha o Python instalado, de uma lida neste tópico:

Caso encontre algum erro ou dificuldade entre em contato para que o conteúdo possa ser melhorado :slight_smile:

15 curtidas