Curso de PyQT: Conectando señales y slots.

Posted by


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.

  1. 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
  1. 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.

  1. 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_()
  1. Ejecutar el programa:
    Para probar nuestro programa, guarda el script en un archivo llamado main.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".

  1. 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!

0 0 votes
Article Rating
8 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
@abeljbetancourt1036
2 months ago

NECESITO AYUDA

@jeanmartialgillette7172
2 months ago

Como crear señales personalizadas y usarlas adecuadamente?

@marcorivas3449
2 months ago

muchas gracias, explica muy bien

@GuerreroSUD
2 months ago

Ayuda por favor, no me deja guardar el archivo en la ubicación por defecto, dice que no tengo permisos.

@jennifercheung3650
2 months ago

Que guay! Gracias por el vídeo!!

@flipfliper3321
2 months ago

ME ENCANTA!! DIVERTIDO Y FACIL!!

@oscarmonroy3626
2 months ago

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

@antoniovalderrama7080
2 months ago

Cordial saludo Maestro; muy claro y muchas gracias.