En este tutorial, te mostraré cómo crear un archivo .pyw en PyQT y cómo crear un lanzador de aplicación para tu aplicación de PyQT. Un archivo .pyw es similar a un archivo .py, pero se ejecuta en modo ventana (sin una consola adjunta), lo que lo hace ideal para aplicaciones de escritorio.
Para empezar, primero asegúrate de tener PyQT instalado en tu sistema. Puedes instalar PyQT usando pip con el siguiente comando:
pip install PyQt5
Una vez que tienes PyQT instalado, puedes comenzar a crear tu aplicación de PyQT. Para este tutorial, crearemos una aplicación simple que muestra una ventana con un botón.
- Crear el archivo .pyw
Abre tu editor de texto favorito y crea un nuevo archivo con la extensión .pyw (por ejemplo, app.pyw). En este archivo, importaremos los módulos necesarios de PyQT y crearemos una clase que represente nuestra aplicación. Aquí tienes un ejemplo de código para la aplicación:
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton
class MyApp(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(100, 100, 300, 200)
self.setWindowTitle('Mi Aplicación PyQT')
button = QPushButton('Haz clic aquí', self)
button.setGeometry(100, 50, 100, 50)
button.clicked.connect(self.buttonClicked)
def buttonClicked(self):
print('¡Has hecho clic en el botón!')
if __name__ == '__main__':
app = QApplication(sys.argv)
myapp = MyApp()
myapp.show()
sys.exit(app.exec_())
Este código crea una ventana con un botón que muestra un mensaje en la consola cuando se hace clic en él. Puedes personalizar este código para adaptarlo a tus necesidades.
- Crear un lanzador de aplicación
Una vez que hayas creado tu archivo .pyw, puedes crear un lanzador de aplicación para ejecutar tu aplicación fácilmente. Para crear un lanzador de aplicación en Windows, puedes crear un archivo de lote (.bat) con el siguiente contenido:
@echo off
cd ruta/del/archivo
python app.pyw
Debes reemplazar "ruta/del/archivo" con la ruta donde se encuentra tu archivo .pyw. Guarda este archivo con la extensión .bat (por ejemplo, lanzador.bat).
Para ejecutar tu aplicación, simplemente ejecuta el archivo de lote (.bat) que has creado.
En resumen, en este tutorial te mostré cómo crear un archivo .pyw en PyQT y cómo crear un lanzador de aplicación para ejecutar tu aplicación de PyQT fácilmente. Espero que este tutorial te haya resultado útil y te haya ayudado a comenzar a desarrollar aplicaciones de escritorio con PyQT. ¡Buena suerte!
Muchas gracias! Excelente curso y explicación detallada y precisa, sin ambigüedades y resultados desde el primer video. Tu canal debería ser más conocido.
Que buena explicación !!! La verdad estuve trabajando con Tkinter pero llego el momento en que me frustre por que no encontraba los widgets que necesitaba para trabajar.. Felicidades tienes un nuevo suscriptor !!!
Para PyQT 6: import sys
from interfaz_1 import *
from PyQt6.QtWidgets import QDialog
class Miformulario(QDialog):
def __init__(self, parent = None):
QtWidgets.QWidget.__init__(self, parent)
self.ui = Ui_Dialog()
self.ui.setupUi(self)
if _name_ == "__main__":
app = QtWidgets.QApplication(sys.argv)
myapp = Miformulario()
myapp.show()
app.exec()
Hola, en el programa lanzador hay algo que sea de escritura de codigo automatico o hay que teclear todo tal cual el video lo muestra terminado ?
Buena explicación un sub mas
Para Qt5
from PyQt5.QtWidgets import QDialog
import sys
from gui_sisclapeeuap import *
class GUIinit(QtWidgets.QDialog):
def __init__(self, parent=None) :
QtWidgets.QWidget.__init__(self, parent)
self.ui =Ui_framePrincipal()
self.ui.setupUi(self)
if __name__== "__main__":
app = QtWidgets.QApplication(sys.argv)
myapp = GUIinit()
myapp.show()
sys.exit(app.exec_())
Holla Jésus, que tal?
Mira mi cod.:
import sys
from PrimeiraAplicacao import*
class MeuFormulario(QtGui.QDialog):
def __init__(self, parent=None):
self.ui = Ui_Dialog()
self.ui.setupUi(self)
if _name_ == "__main__":
app = QtGui.QApplication(sys.argv)
myapp = MeuFormulario()
myapp.show()
sys.exit(app.exec_())
Pero, no se marcha, un error en linea 4 aparece:
Traceback (most recent call last):
File "c:/Users/Portinho/Documents/Python/PyQt5/Curso/chamaaplicacao.py", line 4, in <module>
class MeuFormulario(QtGui.QDialog):
AttributeError: module 'PyQt5.QtGui' has no attribute 'QDialog'
PS C:UsersPortinhoDocumentsPythonPyQt5Curso>
los passos eston exactos a vos.
Gracis por la ayuda.
Portinho de Brazil!
me marca error:del__init__(self, parent=None): SyntaxError: invalid syntax porque?
Nota para PyQt5. Hay que empezar importando: from PyQt5.QtWidgets import QDialog, y luego reemplazar cada aparición de QtGui por QtWidgets. QtGui ya no hace falta para este ejemplo.
Es en la carpeta de Pyqt ?
Adonde guardo el archivo pyw ?
como creo el archivo .pyw ? la única opción que me muestra son los archivos .py
Señor Conde que pena, pero la linea " _main_": generar syntaxis de error? y no ejecuta el lanzador? que podria ser
recien estoy entendiendo PyQt4.
gracias por el esfuerzo que le pones
sigue adelante !
no me tira ningun error pero lo corro en el IDLE de python y no abre la app
pero no da errores porque es que cuando corro el programa no se abre
Estaria muy interesado, si puediese hacer ua tarea de planificacion de exursiones de personas (este seria el dominio) utilizando el modelo-vista-controlador(MVC) con PYQT.
Estimado Jesús,
He seguido exactamente las instrucciones que indica, pero cuando creo el archivo .py y luego el .pyw que indica en el tutorial, y lo ejecuto a través de Tools/Build, no aparece la aplicación y en la consola del Sublime Text 2 sale el siguiente contenido:
Traceback (most recent call last):
File "C:Python27Libsite-packagesPyQt4LLamaPrimeraAplicacion.py", line 12, in <module>
myapp = MiFormulario()
File "C:Python27Libsite-packagesPyQt4LLamaPrimeraAplicacion.py", line 6, in _init_
QtGui.Qwidget.__init__(self, parent)
AttributeError: 'module' object has no attribute 'Qwidget'
[Finished in 0.8s with exit code 1]
Debo estar haciendo algo erróneo, podría indicarme que falla.
Muchísimas gracias de antemano!!!
Un saludo,
Enrique Abadin
tengo un error, dice que mi formulario no esta definido, aun copiando todo exactamente igual
Muchas Gracias por los videos, excelentes tutoriales, tengo una duda, cuando creo un archivo .pyw no puedo importarlo a otro script .py y por ello no puedo utilizar sus widgets, como puedo hacerlo en ese caso? Espero su ayuda y gracias nuevamente
como hago el archivo pyw… ami solo me sale el archivo .py
Muy buenos tutoriales. Sin embargo no logro abrir la ventanita del proyecto. Ni ejecutandolo desde el editor , Ni creandole un ejecutable. Nota el fichero no es que se llamaba PrimeraAplicacionCurso … pues en el lanzador aparece como PrimeraAplicacion
😉