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