PyQt5: Cómo crear una interfaz gráfica en Python desde cero

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

¿Qué es PyQt5 y para qué sirve?

PyQt5 es un conjunto de envolturas (wrappers) de Python para la biblioteca Qt. Es una de las herramientas más populares para crear interfaces gráficas de usuario multiplataforma. Con PyQt5, los desarrolladores pueden crear aplicaciones de escritorio profesionales con un diseño moderno y funcionalidades avanzadas.

Principales características de PyQt5

PyQt5 ofrece a los desarrolladores una amplia gama de funcionalidades:

  • Gran variedad de widgets listos para usar a través del módulo QtWidgets
  • Soporte para ventanas, botones, campos de texto y listas
  • Sistema de señales y slots para programación orientada a eventos
  • Integración con elementos gráficos mediante QGraphicsView
  • Personalización de interfaces con estilos (stylesheets)
  • Compatibilidad con múltiples sistemas operativos

Instalación de la biblioteca PyQt5

Para instalar PyQt5, usa el gestor de paquetes pip:

pip install PyQt5

Creación de una ventana básica

Toda aplicación en PyQt5 comienza creando un objeto QApplication. Este es el objeto principal que gestiona todas las ventanas y eventos. La ventana principal se crea a partir de QWidget.

import sys
from PyQt5.QtWidgets import QApplication, QWidget

app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle("Ventana simple")
window.resize(300, 200)
window.show()
sys.exit(app.exec_())

QApplication es un componente obligatorio para cualquier aplicación GUI en PyQt5. Procesa los eventos del sistema y gestiona el ciclo de vida de la aplicación.

Trabajo con controles básicos

QLineEdit – campo de entrada de texto

QLineEdit es un campo de texto de una sola línea. Este widget se usa ampliamente para capturar datos del usuario.

from PyQt5.QtWidgets import QLineEdit, QVBoxLayout, QPushButton

window = QWidget()
window.setWindowTitle("Ejemplo QLineEdit")

layout = QVBoxLayout()

line_edit = QLineEdit()
line_edit.setPlaceholderText("Ingresa tu nombre")

button = QPushButton("Enviar")

def on_click():
    print(f"¡Hola, {line_edit.text()}!")

button.clicked.connect(on_click)

layout.addWidget(line_edit)
layout.addWidget(button)
window.setLayout(layout)
window.show()

El campo de texto soporta varios métodos para trabajar con texto:

  • setText() – establecer texto mediante código
  • text() – obtener el texto ingresado
  • setPlaceholderText() – establecer un texto de ayuda
  • setMaxLength() – limitar la longitud máxima de entrada

QComboBox – creación de listas desplegables

QComboBox permite al usuario seleccionar una opción de una lista desplegable.

from PyQt5.QtWidgets import QComboBox

combo = QComboBox()
combo.addItems(["Selecciona una opción", "Python", "C++", "JavaScript"])

def on_selection_change(value):
    print(f"Has seleccionado: {value}")

combo.currentTextChanged.connect(on_selection_change)

layout.addWidget(combo)

QComboBox ofrece varios métodos útiles:

  • addItem() – agregar un elemento
  • addItems() – agregar una lista de elementos
  • currentText() – obtener el texto seleccionado
  • currentIndex() – obtener el índice del elemento seleccionado
  • clear() – eliminar todos los elementos

QCheckBox – trabajo con casillas de verificación y señales

QCheckBox permite al usuario marcar o desmarcar una opción.

from PyQt5.QtWidgets import QCheckBox

checkbox = QCheckBox("Acepto los términos y condiciones")

def on_checkbox_state(state):
    if state:
        print("Casilla marcada")
    else:
        print("Casilla desmarcada")

checkb                

Blogs

Book Recommendations