Link Search Menu Expand Document
El Libro De Python (24.95 €) 39.95 €

Interfaz de usuario con pyqt

En algunas ocasiones es importante añadir un interfaz de usuario a nuestros programas, para que puedan ser usado por un público no necesariamente técnico.

Podemos hacer esto con pyqt. En el siguiente ejemplo vemos como crear un interfaz sencillo que tiene:

  • 🧮 Un contador
  • ➕ Un botón que al pulsarlo incrementa el contador en 1.
  • 🎉 Una sorpresa cuando el contador llega a 100.

Vamos a usar los siguiente componentes:

  • QHBoxLayout nos permite organizar los elementos en la pantalla.
  • QLabel nos permite añadir un texto con una etiqueta al interfaz.
  • QPushButton permite crear un botón con un comportamiento definido con clicked.connect.
import sys
from PyQt6.QtWidgets import QApplication, QWidget, QHBoxLayout, QPushButton, QLabel

class AppContador(QWidget):
    def __init__(self):
        super().__init__()
        self.contador = 0

        self.setWindowTitle("Contador")
        self.setGeometry(100, 100, 300, 200)

        layout = QHBoxLayout()

        self.label = QLabel("0", self)
        self.label.setStyleSheet("font-size: 30px;")

        self.button = QPushButton("Incrementar", self)
        self.button.setStyleSheet("""
            font-size: 20px;
            border-radius: 20px;
            background-color: #4CAF50;
            color: white;
            padding: 10px;
            border: 2px solid #3E8E41;
        """)

        self.button.clicked.connect(self.suma_contador)

        layout.addWidget(self.label)
        layout.addWidget(self.button)

        self.setLayout(layout)

    def suma_contador(self):
        self.contador += 1
        if self.contador == 100:
            self.label.setText("🎉")
            self.contador = 0
        else:
            self.label.setText(str(self.contador))

Una vez tenemos la aplicación, la podemos ejecutar de la siguiente forma.

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

    w = AppContador()
    w.show()

    sys.exit(app.exec())

✏️ Ejercicios:

  • Usa pyinstaller para poder distribuir este aplicación a usuarios que no tengan Python, pudiendo ejecutarlo sin instalarlo.