Creación de Interfaces Gráficas en Python con PyQt

Creación de Interfaces Gráficas en Python con PyQt

PyQt es un framework de desarrollo de interfaces gráficas de usuario (GUI) para Python, basado en la biblioteca Qt de Qt Company. Qt es una biblioteca multiplataforma, por lo que las aplicaciones desarrolladas con PyQt se pueden ejecutar en Windows, macOS y Linux.

En este tutorial, aprenderemos a crear una simple interfaz gráfica de usuario en Python con PyQt.

Instalación

Para instalar PyQt, podemos usar el administrador de paquetes de nuestra distribución. Por ejemplo, en Ubuntu, podemos ejecutar el siguiente comando:

sudo apt-get install python3-pyqt5

Creación de una ventana

El primer paso para crear una interfaz gráfica de usuario con PyQt es crear una ventana. Podemos hacerlo usando la clase QMainWindow.

Python
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow

class MyWindow(QMainWindow):
    def __init__(self):
        super().__init__()

        # Establecer el título de la ventana
        self.setWindowTitle("Mi primera ventana")

        # Mostrar la ventana
        self.show()

if __name__ == "__main__":
    app = QApplication(sys.argv)

    # Crear una instancia de la ventana
    my_window = MyWindow()

    # Ejecutar la aplicación
    sys.exit(app.exec_())

Este código creará una ventana con el título «Mi primera ventana».

Añadiendo widgets

Una vez que tenemos una ventana, podemos añadirle widgets. Los widgets son los elementos que componen una interfaz gráfica de usuario, como botones, etiquetas, cuadros de texto, etc.

Para añadir un widget a una ventana, podemos usar el método addWidget().

Python
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel

class MyWindow(QMainWindow):
    def __init__(self):
        super().__init__()

        # Establecer el título de la ventana
        self.setWindowTitle("Mi primera ventana")

        # Crear una etiqueta
        label = QLabel("Hola, mundo!")

        # Añadir la etiqueta a la ventana
        self.setCentralWidget(label)

        # Mostrar la ventana
        self.show()

if __name__ == "__main__":
    app = QApplication(sys.argv)

    # Crear una instancia de la ventana
    my_window = MyWindow()

    # Ejecutar la aplicación
    sys.exit(app.exec_())

Este código añadirá una etiqueta con el texto «Hola, mundo!» al centro de la ventana.

Eventos

Las interfaces gráficas de usuario suelen responder a eventos, como los clics del mouse o la pulsación de teclas. Para responder a eventos, podemos usar el método connect().

Python
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel

class MyWindow(QMainWindow):
    def __init__(self):
        super().__init__()

        # Establecer el título de la ventana
        self.setWindowTitle("Mi primera ventana")

        # Crear una etiqueta
        label = QLabel("Hola, mundo!")

        # Añadir la etiqueta a la ventana
        self.setCentralWidget(label)

        # Conectar el evento de clic del mouse a una función
        label.clicked.connect(self.on_click)

        # Mostrar la ventana
        self.show()

    def on_click(self):
        # Hacer algo cuando el usuario hace clic en la etiqueta
        print("El usuario hizo clic en la etiqueta")

if __name__ == "__main__":
    app = QApplication(sys.argv)

    # Crear una instancia de la ventana
    my_window = MyWindow()

    # Ejecutar la aplicación
    sys.exit(app.exec_())

Este código conectará el evento de clic del mouse a una función llamada on_click(). La función on_click() se ejecutará cuando el usuario haga clic en la etiqueta.

Conclusión

En este tutorial, hemos aprendido los conceptos básicos para crear interfaces gráficas de usuario en Python con PyQt.

Para obtener más información, podemos consultar la documentación oficial de PyQt