Escolar Documentos
Profissional Documentos
Cultura Documentos
Tutorial PyQt5
Saiba como você pode criar uma GUI Python em 2024.
Este tutorial do PyQt5 mostra como usar o Python 3 e o Qt para criar uma GUI no Windows, Mac ou Linux. Abrange até a criação de
um instalador para o seu aplicativo.
O que é PyQt5?
PyQté uma biblioteca que permite usar oEstrutura GUI Qt do Python. O próprio Qt está escrito em C++. Ao usá-lo a partir do Python,
você pode criar aplicativos muito mais rapidamente, sem sacrificar grande parte da velocidade do C++.
PyQt5 refere-se à versão 5 mais recente do Qt. Você ainda pode encontrar a menção ocasional de (Py) Qt4 na web, mas é antigo e
não é mais suportado.
Um novo concorrente interessante para PyQt éQt para Python.Sua API é praticamente idêntica. Ao contrário do PyQt, é licenciado sob
a LGPL e, portanto, pode ser usado gratuitamente em projetos comerciais. É apoiado pela empresa Qt e, portanto, provavelmente pelo
futuro. Usamos PyQt aqui porque é mais maduro. Como as APIs são muito semelhantes, você pode facilmente mudar seus aplicativos
para Qt for Python posteriormente.
Instalar PyQt
A melhor maneira de gerenciar dependências em Python é através de umambiente virtual.Um ambiente virtual é simplesmente um
diretório local que contém as bibliotecas de um projeto específico. Isso é diferente de uma instalação dessas bibliotecas em todo o
sistema, o que também afetaria todos os seus outros projetos.
Isso cria o venv/ pasta. Para ativar o ambiente virtual no Windows, execute:
fonte venv/bin/activate
Você pode ver que o ambiente virtual está ativo pelo(venv) prefixo no seu shell:
https://build-system.fman.io/pyqt5-tutorial 1/8
28/03/2024, 11:29 Tutorial PyQt5 2024: Crie uma GUI com Python e Qt
Primeiro, dizemos ao Python para carregar o PyQt por meio da instrução de importação:
aplicativo = QApplication([])
Este é um requisito do Qt: todo aplicativo GUI deve ter exatamente uma instância de QApplication. Muitas partes do Qt não
funcionam até que você tenha executado a linha acima. Portanto, você precisará dele em praticamente todos os aplicativos (Py) Qt
que escrever.
Os colchetes [] na linha acima, represente os argumentos da linha de comando passados para o aplicativo. Como nosso aplicativo
não usa nenhum parâmetro, deixamos os colchetes vazios.
rótulo.show()
O último passo é entregar o controle ao Qt e pedir que ele "execute o aplicativo até que o usuário o feche". Isso é feito através do
comando:
app.exec()
Se tudo isso funcionou como esperado então bem feito! Você acabou de construir seu primeiro aplicativo GUI com Python e Qt.
Widgets
Tudo o que você vê em um aplicativo (Py) Qt é um widget:Botões, etiquetas, janelas, diálogos, barras de progresso etc.Assim como os
elementos HTML, os widgets geralmente são aninhados. Por exemplo, uma janela pode conter um botão, que por sua vez contém um
rótulo.
https://build-system.fman.io/pyqt5-tutorial 2/8
28/03/2024, 11:29 Tutorial PyQt5 2024: Crie uma GUI com Python e Qt
Rótulo Q
QComboBox
QCheckBox
QRadioButton
QPushButton
QTableWidget
QLineEditar
QSlider
QProgressBar
Você pode baixar o código do aplicativo mostrado na captura de telaaqui, se você estiver interessado.
Layouts
Como no exemplo acima, sua GUI provavelmente consistirá em vários widgets. Neste caso, você precisa dizer ao Qt como posicioná-
los. Por exemplo, você pode usarQVBoxLayoutpara empilhar widgets verticalmente:
Como antes, instanciamos a QApplication. . Então, criamos um window. . Usamos o tipo mais básicoQWidget por isso porque funciona
apenas como um recipiente e não queremos que tenha nenhum comportamento especial.Em seguida, criamos o layout e adicione
doisQPushButtoné isso. Finalmente, dizemos à janela para usar este layout (e, portanto, o seu conteúdo). Tal como na nossa primeira
aplicação, terminamos com chamadas para .show() eapp.exec().
É claro que existem muitos outros tipos de layouts (por exemplo.QHBoxLayout para colocar os itens em uma linha). VerDocumentação
QT'Spara uma visão geral.
Estilos personalizados
Um dos pontos fortes da Qt é o suporte para estilos personalizados.Existem muitos mecanismos que permitem personalizar a
aparência do seu aplicativo. Esta seção descreve alguns.
https://build-system.fman.io/pyqt5-tutorial 3/8
28/03/2024, 11:29 Tutorial PyQt5 2024: Crie uma GUI com Python e Qt
Estilos incorporados
A maneira mais grosseira de alterar a aparência do seu aplicativo é definir o globalEstilo. . Lembre-se da captura de tela dos widgets
acima:
Isso usa um estilo chamado Fusion. . Se você usar o Windows estilo em vez disso, então parece o seguinte:
Os estilos disponíveis dependem da sua plataforma, mas geralmente são'Fusion', 'Windows', 'WindowsVista' (Somente Windows)
e'Macintosh' (somente Mac).
Cores personalizadas
Se você gosta de um estilo, mas quer mudar suas cores (por exemplo, para um tema escuro), então você pode usarQPalettee
app.setPalette(...). . Por exemplo:
do PyQt5.QtCore importar Qtde PyQt5.QtGui importar QPalettede PyQt5.QtWidgets importa QApplication, QPushButtonapp
= QApplication([]) app.setStyle('Fusion')paleta = QPalette()palette.setColor(QPalette.ButtonText,
Qt.red)app.setPalette(paleta)botão = QPushButton('Hello World')button.show()app.exec()
https://build-system.fman.io/pyqt5-tutorial 4/8
28/03/2024, 11:29 Tutorial PyQt5 2024: Crie uma GUI com Python e Qt
Folhas estilo
Além do acima exposto, você pode alterar a aparência do seu aplicativo via folhas estilo. . Este é o análogo do CSS do Qt. Podemos
usar isso, por exemplo, para adicionar algum espaçamento:
Sinais/slots
Qt usa um mecanismo chamado sinais para permitir que você reaja a eventos como o usuário clicando em um botão. O exemplo a
seguir ilustra isso. Contém um botão que, quando clicado, mostra uma caixa de mensagens:
do PyQt5.QtWidgets import *app = QApplication ([])button = QPushButton ('Click') def on_button_clicked(): alert =
QMessageBox () alert.setText ('Você clicou no botão!')
alerta.exec()botão.clicado.connect(on_button_clicked)botão.show()app.exec()
A linha interessante é destacada acima:button.clicked é um sinal,.connect(...) deixa-nos instalar um chamadoentalhe nele. Esta é
simplesmente uma função que é chamada quando o sinal ocorre. No exemplo acima, nosso slot mostra uma caixa de mensagens.
O termo slot é importante ao usar Qt de C++, porque os slots devem ser declarados de maneira especial em C++. Em Python,
entretanto, qualquer função pode ser um slot –, vimos isso acima. Por esta razão, a distinção entre slots e funções "normais" tem
pouca relevância para nós.
Os sinais são onipresentes no Qt. E claro, você também pode definir o seu próprio. Isso, entretanto, está além do escopo deste tutorial.
Você poderia pedir aos usuários do seu aplicativo para instalar Python e PyQt como fizemos acima, em seguida, dar-lhes o seu código-
fonte. Mas isso é muito tedioso (e geralmente impraticável). O que queremos em vez disso é um autônomo versão do seu app Ou seja,
um executável binário que outras pessoas podem executar em seus sistemas sem ter que instalar nada.
https://build-system.fman.io/pyqt5-tutorial 5/8
28/03/2024, 11:29 Tutorial PyQt5 2024: Crie uma GUI com Python e Qt
Usaremos uma nova biblioteca chamadafbs isso permite criar executáveis independentes para aplicativos PyQt. Para instalá-lo, digite
o comando:
fbs startproject
Quando você digita o sugerido run comando, uma janela vazia deve abrir:
Este é um aplicativo PyQt5 igual aos que vimos antes.Seu código fonte está em src/main/python/main.pyno seu diretório atual. Mas
aqui está a parte legal: podemos usar o fbs para transformá-lo em um executável independente!
fbs congelar
Isso coloca um binário independente notarget/MyApp/ pasta do seu diretório atual.Você pode enviá-lo para seus amigos (com o
mesmo SO que o seu) e eles poderão executar seu aplicativo!
(Observe que a versão gratuita do fbs suporta apenas Python 3.5 ou 3.6. Se você tiver uma versão diferente, instale uma dessas
versões Python suportadas ou compre fbs Pro).
https://build-system.fman.io/pyqt5-tutorial 6/8
28/03/2024, 11:29 Tutorial PyQt5 2024: Crie uma GUI com Python e Qt
(Se você estiver no Windows, primeiro precisará instalarINE e coloque-o no seu PATH. .)
Para obter mais informações sobre como você pode usar o fbs para seu aplicativo existente, consulteeste artigo. .Oututorial fbs.
Resumo
Se você chegou até aqui, então grandes parabéns.Esperançosamente, agora você tem uma boa ideia de como o PyQt (e suas várias
partes) pode ser usado para escrever um aplicativo de desktop com Python. Também vimos como o fbs permite criar executáveis e
instaladores independentes.
O livro explica com mais detalhes como você pode criar seus próprios aplicativos. Até Phil Thompson, o criador do PyQt, leu o livro e
disse que é "muito bom". Então vê lá!
https://build-system.fman.io/pyqt5-tutorial 7/8
28/03/2024, 11:29 Tutorial PyQt5 2024: Crie uma GUI com Python e Qt
Michael trabalha com PyQt5 desde 2016, quando começoufman,um gerenciador de arquivos multiplataforma. Frustrado com as
dificuldades de criar um aplicativo de desktop, Michael abriu o códigosistema de construção da FMAN (fbs). Ele economiza meses ao
criar GUIs Python Qt. Recentemente, Michael também escreveu um popular livrosobre essas duas tecnologias.
https://build-system.fman.io/pyqt5-tutorial 8/8