PyQt – Recipe 11: Handling Events or Signals and Slots

Posted by


En PyQt, la gestión de eventos o señales y slots es una parte fundamental del desarrollo de aplicaciones. En esta receta, aprenderemos cómo gestionar eventos y señales utilizando PyQt.

Primero, es importante entender qué son los eventos, las señales y los slots en PyQt. Un evento es cualquier acción que ocurra dentro de la aplicación, como hacer clic en un botón o mover el cursor del ratón. Una señal es una notificación que indica que un evento ha ocurrido, y un slot es una función o método que se ejecuta en respuesta a la señal.

Para gestionar eventos en PyQt, necesitamos crear objetos que emitan señales y conectar esas señales a los slots correspondientes. Esto se hace utilizando la función connect(), que nos permite especificar qué señal debe estar conectada a qué slot.

A continuación, vamos a ver un ejemplo simple de cómo gestionar eventos en PyQt. Crearemos una ventana con un botón que, al hacer clic en él, cambiará el color de fondo de la ventana.

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton
from PyQt5.QtCore import pyqtSlot

class Ventana(QWidget):
    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):
        self.setWindowTitle('Gestión de eventos en PyQt')
        self.setGeometry(100, 100, 300, 200)

        boton = QPushButton('Cambiar color', self)
        boton.clicked.connect(self.cambiarColor)

    @pyqtSlot()
    def cambiarColor(self):
        color = self.palette().color(self.backgroundRole())
        if color == self.palette().color(self.backgroundRole()):
            self.setStyleSheet("background-color: yellow")
        else:
            self.setStyleSheet("background-color: white")

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ventana = Ventana()
    ventana.show()
    sys.exit(app.exec_())

En este ejemplo, creamos una clase Ventana que hereda de QWidget y que tiene un método initUI() donde definimos la interfaz de usuario de nuestra ventana. Creamos un botón y conectamos su señal clicked a la función cambiarColor().

La función cambiarColor() cambia el color de fondo de la ventana alternando entre amarillo y blanco cada vez que se hace clic en el botón.

Al ejecutar este código, veremos una ventana con un botón que cambia su color de fondo al hacer clic en él.

Este es solo un ejemplo simple de cómo gestionar eventos en PyQt. Hay muchas más señales y slots disponibles en PyQt que se pueden utilizar para realizar acciones más complejas. Se recomienda leer la documentación oficial de PyQt para obtener más información sobre cómo gestionar eventos y señales en PyQt.

¡Espero que esta receta haya sido útil y te haya ayudado a entender cómo gestionar eventos en PyQt!

0 0 votes
Article Rating
1 Comment
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
@alandasettt
1 month ago

Que 3xhp explicacion tan buena¡¡¡¡….Gracias