![O Dexcom G7 pode transferir dados de glicose para o seu Apple Watch.](https://optimuscloud.com.br/wp-content/uploads/2024/06/1717586522_Dexcom-G7-desbloqueia-gerenciamento-de-diabetes-no-Apple-Watch-150x150.jpg)
Dexcom G7 desbloqueia gerenciamento de diabetes no Apple Watch
5 de junho de 2024![Gateways de IA vs. Gateways de API: Qual é a diferença?](https://optimuscloud.com.br/wp-content/uploads/2024/06/1717602244_Gateways-de-IA-vs-Gateways-de-API-Qual-e-a-150x150.jpg)
Gateways de IA vs. Gateways de API: Qual é a diferença?
5 de junho de 2024Embora o Python seja mais frequentemente considerado uma linguagem para a criação de aplicativos baseados em texto, ele pode (graças à ajuda de certas bibliotecas) criar GUIs. Uma dessas bibliotecas é PyQt5.
Para aqueles que estão apenas começando com Python, Qt é um conjunto de bibliotecas C++ multiplataforma que possibilitam ao Python acessar recursos de sistemas operacionais de desktop modernos (como GUIs). Essa biblioteca também possibilita o acesso a recursos móveis, como serviços de posicionamento, NFC, Bluetooth e muito mais.
Vamos nos concentrar na parte GUI do Qt. Falando nisso…
PyQt5 é a ligação Python para Qt v5 e inclui vários módulos de extensão para que os desenvolvedores possam criar aplicativos GUI fáceis de usar.
Vou primeiro orientar você no processo de instalação do PyQt5 e, em seguida, mostrar como ele é usado para criar um aplicativo rudimentar com Python.
O que você precisará
Vou demonstrar isso em uma instância do Ubuntu Desktop 22.04. Se estiver usando uma distribuição não-Debian, você precisará modificar o processo de instalação para corresponder ao gerenciador de pacotes usado pelo sistema operacional de sua escolha. Você também precisará de um usuário com privilégios sudo (apenas para instalação).
Com isso pronto, vamos fazer algumas delícias da GUI.
Instalando o software necessário
Embora o Linux seja fornecido com o Python3 instalado, instalaremos a versão completa do Python3. Faça login em sua área de trabalho, abra uma janela de terminal e emita o comando:
sudo apt-get install python3-full -y
Depois de concluir a instalação, você poderá instalar o PyQt5 com o comando:
sudo apt-get install python3-pyqt5 -y
Criando uma janela QUI
A primeira coisa que faremos é criar uma GUI em branco (para mostrar como tudo é importado e chamado). A primeira linha instrui o Python sobre quais classes estamos usando. Essa linha de código se parece com isto:
from PyQt5.QtWidgets import QApplication, QWidget
Temos que usar sys.argv para inicializar a aplicação Qt, o que é feito através de:
import sys
Para criar uma instância da classe QApplication e passar o sys.argv argumentos de linha de comando como este:
app = QApplication(sys.argv)
Agora definimos nossa janela usando a função QWidget e garantimos que ela seja mostrada (porque estão ocultas por padrão) com:
window = QWidget() window.show()
Finalmente, iniciamos um loop de eventos que manterá a janela aberta:
app.exec()
Um loop de eventos é uma construção de programação que espera e despacha eventos ou mensagens dentro de um programa. Loops de eventos são frequentemente usados para lidar com eventos como operações de E/S, temporizadores e retornos de chamada. Com um aplicativo GUI, o pressionar de uma tecla, o clique do mouse ou até mesmo o movimento do mouse geram um evento. Esse evento é então colocado na fila de eventos. Durante cada iteração da fila, uma verificação é executada e se um evento em espera for descoberto, tanto o evento quanto o controle são passados para o manipulador de eventos para passar o controle de volta para a fila. Em nosso exemplo, QApplication é responsável por manter o loop de eventos.
Todo o código do aplicativo é assim:
from PyQt5.QtWidgets import QApplication, QWidget import sys app = QApplication(sys.argv) window = QWidget() window.show() app.exec()
Se você executar o procedimento acima, verá uma janela vazia (Figura 1)o que não é muito útil.
figura 1
![](https://optimuscloud.com.br/wp-content/uploads/2024/06/1717595044_35_Como-criar-um-aplicativo-GUI-Python-com-PyQt5.jpg)
Certamente podemos fazer mais do que isso.
Vamos adicionar um botão à nossa janela. Para isso, precisamos adicionar outra biblioteca à nossa de linhas. Essa biblioteca é QPushButton e agora nossa linha from fica assim:
from PyQt5.QtWidgets import QApplication, QPushButton
A única outra coisa que precisamos mudar é a nossa declaração de janela, de:
window = QWidget()
que
window = QPushButton("My Button")
Nosso novo aplicativo é assim:
from PyQt5.QtWidgets import QApplication, QPushButton import sys app = QApplication(sys.argv) window = QPushButton("My Button") window.show() app.exec()
Vamos criar um aplicativo Hello World simples com uma GUI Qt.
from PyQt5.QtWidgets import QWidget, QApplication import sys application = QApplication(sys.argv) mainWindow = QWidget() mainWindow.setGeometry(0, 0, 350, 400) mainWindow.setWindowTitle('Hello World') mainWindow.show() application.exec()
Ao executar isso, você verá duas diferenças:
- Definimos a geometria da janela com mainWindow.setGeometry(0, 0, 350, 400).
- Adicionamos um título com mainWindow.setWindowTitle(‘Olá Mundo’).
Torne-o interativo
Até agora, mesmo que apertemos o botão em nosso aplicativo, ele não faz nada. Para torná-lo interativo, temos que usar os chamados slots e sinais. Um sinal é uma notificação que um widget emite quando algo acontece (como um clique de botão). Um slot é uma função (ou método) invocada após um widget emitir um sinal.
Vamos fazer nosso aplicativo de botão responder a um sinal clicado. O que ele fará é enviar a saída do sinal para a janela do terminal, para que você possa vê-lo em ação. As primeiras quatro linhas do nosso código devem ser familiares:
from PyQt5.QtWidgets import QWidget, QApplication, QPushButton import sys application = QApplication(sys.argv) mainWindow = QWidget()
A seguir, usamos o setGeometria() função para definir a geometria (que será de 200 x 200 pixels) do nosso aplicativo com a linha:
mainWindow.setGeometry(0, 0, 500, 500)
Defina um título com:
mainWindow.setWindowTitle('Click Me New Stack')
Agora definimos uma função para criar o slot com:
def clickedSlot(): print("You've pushed my button!")
Nosso slot enviará a mensagem “Você apertou meu botão” para a saída do terminal.
Crie nosso botão e chame a função connect(clickedSlot) com:
pushButton = QPushButton(parent=mainWindow, text="Click Here") pushButton.clicked.connect(clickedSlot)
Certifique-se de que nossa janela esteja visível e execute com as duas linhas finais:
mainWindow.show() application.exec()
Crie um novo arquivo com:
nano pushme.py
Cole o código completo do aplicativo no arquivo, que é:
from PyQt5.QtWidgets import QWidget, QApplication, QPushButton import sys application = QApplication(sys.argv) mainWindow = QWidget() mainWindow.setGeometry(0, 0, 500, 500) mainWindow.setWindowTitle('Click Me New Stack') def clickedSlot(): print("You've pushed my button") pushButton = QPushButton(parent=mainWindow, text="Click Here") pushButton.clicked.connect(clickedSlot) mainWindow.show() application.exec()
Quando você executa o aplicativo (com python3 pushme.py), você verá a janela do nosso aplicativo com o botão Clique aqui. Se você clicar no botão, você verá Você apertou meu botão na saída da janela do terminal (Figura 2).
Figura 2
![](https://optimuscloud.com.br/wp-content/uploads/2024/06/1717595044_360_Como-criar-um-aplicativo-GUI-Python-com-PyQt5.jpg)
O botão foi pressionado.
Parabéns, você deu os primeiros passos na criação de uma GUI Python com PyQt5. Na próxima vez, criaremos um aplicativo GUI que seja realmente útil.
A postagem Como criar um aplicativo GUI Python com PyQt5 apareceu pela primeira vez em The New Stack.