Você está na página 1de 8

28/03/2024, 11:29 Tutorial PyQt5 2024: Crie uma GUI com Python e Qt

sistema de construção Fman


Características Documentação Livro Pro

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.

Para criar um ambiente virtual no diretório atual, execute o seguinte comando:

python3-m venv venv

Isso cria o venv/ pasta. Para ativar o ambiente virtual no Windows, execute:

ligue para venv/scripts/activate.bat

No Mac e Linux, use:

fonte venv/bin/activate

Você pode ver que o ambiente virtual está ativo pelo(venv) prefixo no seu shell:

Para instalar agora o PyQt, emita o seguinte comando:

pip instalar PyQt5

Parabéns! Você configurou com sucesso o PyQt5.

Criar uma GUI


É hora de escrever nosso primeiro aplicativo GUI! Com o ambiente virtual ainda ativo, inicie o Python. Executaremos os seguintes
comandos:

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:

do PyQt5.QtWidgets importar QApplication, QLabel

Em seguida, criamos um QApplication com o comando:

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.

Agora, para realmente ver algo, criamos um rótulo simples:

rótulo = QLabel('Olá, mundo!')

Depois, dizemos ao Qt para mostrar o rótulo no ecrã:

rótulo.show()

Dependendo do seu sistema operacional, isso já abre uma pequena janela:

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.

A captura de tela a seguir mostra os widgets Qt mais comuns:

https://build-system.fman.io/pyqt5-tutorial 2/8
28/03/2024, 11:29 Tutorial PyQt5 2024: Crie uma GUI com Python e Qt

De cima para baixo, da esquerda para a direita, são eles:

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:

O código para esta captura de ecrã é:

do PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayoutapp = QApplication([])window =


QWidget()layout =
QVBoxLayout()layout.addWidget(QPushButton('Top'))layout.addWidget(QPushButton('Bottom'))window.setLayout(layout)wi
ndow.show()app.exec()

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:

Para aplicar um estilo, use app.setStyle(...):

do PyQt5.Importação QtWidgets *app = QApplication([])app.setStyle('Fusion')...

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()

Isto altera a cor do texto nos botões para vermelho:

https://build-system.fman.io/pyqt5-tutorial 4/8
28/03/2024, 11:29 Tutorial PyQt5 2024: Crie uma GUI com Python e Qt

Para um tema sombrio do estilo Fusion, vejaaqui.

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:

do PyQt5.QtWidgets importa QApplication, QPushButtonapp = QApplication([])app.setStyleSheet("Margem QPushButton {:


10ex; }")botão = QPushButton('Hello World')button.show()app.exec()

Para mais informações sobre folhas de estilo, consulteDocumentação QT'S.

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.

Compile seu aplicativo


Agora você tem o conhecimento básico para criar uma GUI que responda às entradas do usuário. Digamos que você escreveu um
aplicativo. Ele é executado no seu computador. Como você dá para outras pessoas, para que elas também possam executá-lo?

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

No mundo Python, o processo de transformar o código-fonte em um executável independente é chamado congelamento.Embora


existam muitas bibliotecas que abordam esse problema, –, como PyInstaller, py2exe, cx_Freeze, bbfreze, py2app,... – congelando
aplicativos PyQt tem sido tradicionalmente um problema surpreendentemente difícil.

Usaremos uma nova biblioteca chamadafbs isso permite criar executáveis independentes para aplicativos PyQt. Para instalá-lo, digite
o comando:

pip instalar fbs

Em seguida, execute o seguinte:

fbs startproject

Isso solicita alguns valores:

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

Bônus: Crie um instalador


o FBS também permite criar um instalador para seu aplicativo por meio do comando fbs installer:

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.

Devido à popularidade deste artigo, escrevi um Livro PyQt6.

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.

Michael Herrmann Alser Straße 28/18 Política Privacidade


Omaha Consulting GmbH 1090 Viena, Áustria
© 2016 – 2024

https://build-system.fman.io/pyqt5-tutorial 8/8

Você também pode gostar