É possível criar uma GUI (Interface Gráfica do Usuário) para os códigos do Python e empacotar tudo em um arquivo .EXE do Windows. O programa que criaremos será como o exemplo abaixo e se chamará “MeuProg.exe”.
A interface gráfica (frontend) será construída visualmente, usando um programa chamado QtDesigner. Esse programa irá gerar um arquivo .ui que será linkado com o código em Python (.py), que rege a lógica do programa, também chamado de backend.
Finalmente, o código em Pyhton (.py) será transformado em arquivo .exe, que poderá rodar em qualquer computador, desde que acompanhado pelo arquivo .ui.
Vamos precisar intalar:
Com tudo instalado, vamos abrir o QtDesigner. Cria-se a interface usando os widgets, como botões, caixas de texto, caixa de checagem etc. As propriedades de cada widget devem ser ajustadas, prestando atenção à propriedade “objectName” e “text”, que serão usados posteriormente nos códigos em Python.
A tela do QtDesigner com a janela do programa finalizado é mostrado abaixo. Quando tudo estiver pronto, o arquivo .ui deverá ser salvo, com o nome “MeuProg.ui”.
Na mesma pasta do arquivo MeuProg.ui será criado um arquivo de texto vazio chamado MeuProg.py, que deverá ser aberto pelo VSCode.
O esqueleto inicial do código que vai no arquivo MeuProg.py é o seguinte:
import sys
from PyQt5 import QtCore, QtGui, QtWidgets, uic
import PyQt5.QtWidgets
qtCreatorFile = "MeuProg.ui" #Esse é o arquivo .ui gerado pelo QtDesigner
Ui_MainWindow, QtBaseClass = uic.loadUiType(qtCreatorFile)
class MyWindow(QtWidgets.QMainWindow, Ui_MainWindow):
def __init__(self):
QtWidgets.QMainWindow.__init__(self)
Ui_MainWindow.__init__(self)
self.setupUi(self)
#### Aqui começam os códigos que manipulam os widgets
#### Aqui terminam os códigos que manipulam os widgets
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
window = MyWindow()
window.show()
sys.exit(app.exec_())
O código que precisamos incluir para fazer o cálculo está abaixo:
import sys
from PyQt5 import QtCore, QtGui, QtWidgets, uic
import PyQt5.QtWidgets
qtCreatorFile = "MeuProg.ui" #Esse é o arquivo .ui gerado pelo QtDesigner
Ui_MainWindow, QtBaseClass = uic.loadUiType(qtCreatorFile)
class MyWindow(QtWidgets.QMainWindow, Ui_MainWindow):
def __init__(self):
QtWidgets.QMainWindow.__init__(self)
Ui_MainWindow.__init__(self)
self.setupUi(self)
self.wdg_btn_calc.clicked.connect(self.func_calc)
#### Aqui começam os códigos que manipulam os widgets
def func_calc(self):
n1 = int(self.wdg_edit1.text())
n2 = int(self.wdg_edit2.text())
n = n1 + n2
self.wdg_label_result.setText(str(n))
#### Aqui terminam os códigos que manipulam os widgets
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
window = MyWindow()
window.show()
sys.exit(app.exec_())
Uma vez que o programa tenha sido bem testado, o último passo é criar o executável. Para isso, os arquivos .py e .ui deverão estar na mesma pasta. Digite o seguinte código no terminal do Miniconda:
pyinstaller --onefile -w MeuProg.py
Duas novas pastas serão criadas: “dist” e “build”. Dentro da pasta “dist” estará o arquivo MeuProg.exe.
Para que o programa funcione, é necessário copiar o arquivo MeuProg.ui para a pasta “dist”.
Ambos os arquivos precisam ficar juntos para funcionar em outros computadores.
Assista o vídeo com todos esses passos explicadinhos: https://youtu.be/jXkMpSRq8cc
Fim!