En PyQT, una parte fundamental para el desarrollo de interfaces gráficas interactivas es la conexión de señales con slots. Esto nos permite responder a eventos de usuario, como hacer clic en un botón o cambiar un valor en un campo de entrada.
En este tutorial, vamos a aprender cómo conectar señales con slots en PyQT para poder responder a eventos de manera dinámica.
- Importar las librerías necesarias:
Antes de comenzar, asegúrate de tener instalada la biblioteca PyQt5. Si no la tienes, puedes instalarla fácilmente utilizando pip:
pip install PyQt5
Una vez que tengas PyQt5 instalado, puedes importar las clases necesarias en tu script de Python:
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QMessageBox
- Crear una clase principal:
Lo primero que debemos hacer es crear una clase que herede de QMainWindow, la cual será nuestra ventana principal:
class MiVentana(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle('Ejemplo de Conexión de Señales con Slots')
self.setGeometry(100, 100, 400, 300)
btn = QPushButton('Haz clic', self)
btn.clicked.connect(self.mostrarMensaje)
def mostrarMensaje(self):
QMessageBox.information(self, 'Mensaje', 'Has hecho clic en el botón')
En esta clase, hemos creado una ventana con un botón. Hemos conectado la señal clicked
del botón con el slot mostrarMensaje
, el cual abrirá un cuadro de diálogo de información cuando hagamos clic en el botón.
- Crear la aplicación y la ventana principal:
Una vez definida nuestra clase principal, necesitamos crear una instancia de la aplicación y mostrar la ventana:
if __name__ == '__main__':
app = QApplication([])
ventana = MiVentana()
ventana.show()
app.exec_()
- Ejecutar el programa:
Para probar nuestro programa, guarda el script en un archivo llamadomain.py
y ejecútalo desde una terminal:
python main.py
Deberías ver una ventana con un botón que al hacer clic en él, mostrará un cuadro de diálogo con el mensaje "Has hecho clic en el botón".
- Conectar señales con slots personalizados:
Además de conectar señales con los slots predeterminados de PyQt, también puedes conectar señales con funciones personalizadas. Por ejemplo:
def realizarAccion(self):
print('Realizando la acción')
btn.clicked.connect(self.realizarAccion)
En este caso, al hacer clic en el botón se imprimirá en la consola el mensaje "Realizando la acción".
En resumen, conectar señales con slots en PyQT es una característica fundamental para crear interfaces gráficas interactivas y responder dinámicamente a eventos de usuario. En este tutorial, hemos aprendido cómo hacerlo de forma sencilla y cómo conectar señales con funciones personalizadas. ¡Espero que te haya sido útil este tutorial!
NECESITO AYUDA
Como crear señales personalizadas y usarlas adecuadamente?
muchas gracias, explica muy bien
Ayuda por favor, no me deja guardar el archivo en la ubicación por defecto, dice que no tengo permisos.
Que guay! Gracias por el vídeo!!
ME ENCANTA!! DIVERTIDO Y FACIL!!
hola disculpe yo quiero hacer que un botón tenga un numero definido y que al presionarlo me lo escribiera en una caja de texto no se si eso se podría hacer y como se haría para vincular el botón a la caja de texto
Cordial saludo Maestro; muy claro y muchas gracias.