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.