Curso de PyQT: Creación de archivo .pyw y lanzamiento de aplicación.

Posted by


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.

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

  1. 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!

0 0 votes
Article Rating
22 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
@beta45virgoazteca
2 months ago

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.

@vlc5554
2 months ago

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 !!!

@carlosestrada9917
2 months ago

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

@victorvillafane5734
2 months ago

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 ?

@anthonysanchez5313
2 months ago

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

@portinho199
2 months ago

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!

@gabrielfernandez9959
2 months ago

me marca error:del__init__(self, parent=None): SyntaxError: invalid syntax porque?

@msx68k
2 months ago

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.

@3erB
2 months ago

Es en la carpeta de Pyqt ?

@3erB
2 months ago

Adonde guardo el archivo pyw ?

@ebertrondon2809
2 months ago

como creo el archivo .pyw ? la única opción que me muestra son los archivos .py

@jorgesierra4916
2 months ago

Señor Conde que pena, pero la linea " _main_": generar syntaxis de error? y no ejecuta el lanzador? que podria ser

@salsatradicional
2 months ago

recien estoy entendiendo PyQt4.
gracias por el esfuerzo que le pones
sigue adelante !

@pabloweiss1788
2 months ago

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

@Tanketor
2 months ago

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.

@EEAA9467
2 months ago

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

@blackdj29
2 months ago

tengo un error, dice que mi formulario no esta definido, aun copiando todo exactamente igual

@enriquevillafane7583
2 months ago

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

@mrrony2703
2 months ago

como hago el archivo pyw… ami solo me sale el archivo .py

@carlosrigolan73
2 months ago

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
😉