Pitón | Introducción a PyQt5

Pitón | Introducción a PyQt5

Python ofrece muchas opciones para desarrollar aplicaciones GUI y PyQt5 es una de ellas. PyQt5 es un conjunto de herramientas GUI multiplataforma, un conjunto de enlaces de Python para Qt v5. Se puede desarrollar una aplicación de escritorio interactiva con mucha facilidad gracias a las herramientas y la simplicidad que proporciona esta biblioteca. Una aplicación GUI consta de Front-end y Back-end. PyQt5 ha proporcionado una herramienta llamada 'QtDesigner' para diseñar el front-end mediante el método de arrastrar y soltar para que el desarrollo pueda ser más rápido y uno pueda dedicar más tiempo al back-end. Instalación: Primero, necesitamos instalar la biblioteca PyQt5. Para esto, escriba el siguiente comando en la terminal o símbolo del sistema:

pip install pyqt5 

Si se instaló correctamente, se puede verificar ejecutando el código:

>>>importar PyQt5 

PyQt5 proporciona muchas herramientas y QtDesigner es una de ellas. Para esto ejecute este comando:

pip install PyQt5-tools 

Crea tu primera aplicación –

Esta es una aplicación sencilla que tiene un solo botón en la ventana. Después de hacer clic en ese botón aparecerá un mensaje. Hiciste clic en mí. Empecemos .

  • En primer lugar, debemos encontrar QtDesigner para crear la parte frontal. – QtDesigner está presente en ‘site-packages/pyqt5_tools’ – Para encontrar la ubicación de los paquetes del sitio, escriba el siguiente código Python usando cualquier editor de su elección y luego ejecútelo:
>>> importar sitio>>> sitio.getsitepackages() 
  • – Ejecute la aplicación denominada 'diseñador'.
  • Se abrirá una ventana como se muestra en la figura: seleccione la opción 'Diálogo sin botón' y haga clic en 'Crear'
  • En el lado izquierdo del diseñador habrá varios widgets que se pueden arrastrar y soltar en nuestra ventana según nuestros requisitos.
  • Busque y arrastre y suelte 'Botón pulsador' y 'Etiqueta'.
  • Cambie el texto dentro de los widgets haciendo clic derecho y seleccionando 'Cambiar texto sin formato'. Mantenga el texto de la Etiqueta en blanco.
  • Hemos creado nuestro diseño de interfaz, simplemente guárdelo en la ubicación deseada. Recuerde, este archivo tendrá la extensión .ui.
  • Necesitamos convertir el archivo .ui en un archivo .py para obtener la forma Python de los widgets y adjuntarles los detectores de eventos necesarios.

Conversión de un archivo .ui en un archivo .py:

  • Para esto tenemos que ir al directorio de paquetes de sitio en la terminal o símbolo del sistema y ejecutar el comando como se muestra a continuación. Obtener la ubicación de los paquetes del sitio se mencionó anteriormente.

>>> cd C:Users……ProgramsPythonPython36-32libsite-packages [Ubicación de los paquetes de sitio]>>> pyuic5 C:Users……FILENAME .ui[Ubicación exacta del archivo .ui] -o C:Users…….FILENAME.py [Ubicación donde desea colocar el archivo .py]

  • Finalmente agregaremos señales y colocaremos el código Python para que sea completamente funcional.
widget.signal.connect(slot) 
  • A señal es emitido por widgets después de que ocurre un cierto tipo de evento como un clic, doble clic, etc. ranura es cualquier función invocable que realizará alguna acción después de que ocurra un evento.
  • Ejecute la aplicación y haga clic en el botón.

A continuación se muestra el código:

Python3




import> sys> from> PyQt5> import> QtCore, QtGui, QtWidgets> class> Ui_Dialog(> object> ):> > def> setupUi(> self> , Dialog):> > Dialog.setObjectName('Dialog')> > Dialog.resize(> 400> ,> 300> )> > self> .pushButton> => QtWidgets.QPushButton(Dialog)> > self> .pushButton.setGeometry(QtCore.QRect(> 150> ,> 70> ,> 93> ,> 28> ))> > self> .label> => QtWidgets.QLabel(Dialog)> > self> .label.setGeometry(QtCore.QRect(> 130> ,> 149> ,> 151> ,> 31> ))> > self> .label.setText('')> > self> .retranslateUi(Dialog)> > QtCore.QMetaObject.connectSlotsByName(Dialog)> > > # adding signal and slot> > self> .pushButton.clicked.connect(> self> .showmsg)> > def> retranslateUi(> self> , Dialog):> > _translate> => QtCore.QCoreApplication.translate> > Dialog.setWindowTitle(_translate('Dialog', 'Dialog'))> > self> .pushButton.setText(_translate('Dialog', 'Click'))> > > def> showmsg(> self> ):> > # slot> > self> .label.setText('You clicked me')> if> __name__> => => '__main__':> > app> => QtWidgets.QApplication(sys.argv)> > MainWindow> => QtWidgets.QMainWindow()> > ui> => Ui_Dialog()> > ui.setupUi(MainWindow)> > MainWindow.show()> > sys.exit(app.exec_())>