Python | Introducción a PyQt5

Hay tantas opciones proporcionadas por Python para desarrollar una aplicación GUI y PyQt5 es una de ellas. PyQt5 es un kit de herramientas GUI multiplataforma, un conjunto de enlaces de Python para Qt v5. Uno puede desarrollar una aplicación de escritorio interactiva con tanta facilidad debido a las herramientas y la simplicidad que ofrece 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 sea más rápido y se pueda dedicar más tiempo a las cosas del 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:

>>>import PyQt5

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

pip install PyQt5-tools

Crea tu primera aplicación –

Esta es una aplicación simple 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, necesitamos 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:
    >>> import site
    >>> site.getsitepackages()

    – Ejecute la aplicación llamada ‘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 de acuerdo con nuestros requisitos.
  • Busque y arrastre y suelte ‘Pulsador’ y ‘Etiqueta’.
  • Cambie el texto dentro de los widgets haciendo clic con el botón derecho y seleccionando ‘Cambiar texto sin formato’. Mantenga el texto de la Etiqueta en blanco.
  • Hemos creado nuestro diseño frontal, simplemente guárdelo en la ubicación deseada. Recuerde, este archivo tendrá la extensión .ui.
  • Necesitamos convertir el .uiarchivo en .pyun archivo para obtener la forma python de los widgets y adjuntarles los detectores de eventos necesarios.

    Convertir .uiarchivo en .pyarchivo:

    Para esto, debemos ir al directorio sitpackages en la terminal o en el 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\\……\\Programs\\Python\\Python36-32\\lib\\site-packages” [Ubicación de sitepackages]

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

    Los widgets emiten una señal después de la ocurrencia de un determinado tipo de evento, como un clic, un doble clic, etc.
    Una ranura es cualquier función invocable que realizará alguna acción después de la ocurrencia de un evento.

  • Ejecute la aplicación y haga clic en el botón.

A continuación se muestra el código –

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

Publicación traducida automáticamente

Artículo escrito por abhilekhnathdas111 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *