In this article we want to learn about Signals & Slots in Python Pyside6, in PySide6 Signals and Slots are powerful tool for building event driven applications. Signals and Slots allow objects to communicate with each other by emitting and receiving signals. this article introduces you Signals and Slots in PySide6.
Signals and Slots Overview
In PySide6 signal is a notification that an event has occurred, while slot is a method that can be called in response to the signal. Signals and Slots are used to decouple different parts of program and make them more modular, this allows for better code organization and reusability.
Signals and Slots in PySide6 works by connecting a signal from one object to a slot in another object. when the signal is emitted, the slot is called. this allows for powerful event driven programming, where the program responds to events as they occur.
Let’s consider an example that displays text box and a button. when button is clicked, the text box should display message. we will use Signals and Slots to achieve this behavior.
First of all we need to create MainWindow class that contains QTextEdit and QPushButton. after that we will connect QPushButton’s clicked signal to slot that will update the text in the QTextEdit.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
from PySide6.QtWidgets import QMainWindow, QApplication, QTextEdit, QPushButton, QToolBar import sys class MainWindow(QMainWindow): def __init__(self): super().__init__() # Create widgets self.text_edit = QTextEdit() self.button = QPushButton("Click me!") self.toolbar = QToolBar() # Connect button signal to slot self.button.clicked.connect(self.update_text) # Add widgets to layout self.setCentralWidget(self.text_edit) self.toolbar.addWidget(self.button) self.addToolBar(self.toolbar) def update_text(self): self.text_edit.setText("Welcome to GeeksCoders.com") app = QApplication(sys.argv) window = MainWindow() window.show() sys.exit(app.exec()) |
In the MainWindow class we have creatde QTextEdit and QPushButton. after that we have connected QPushButton’s clicked signal to the update_text slot using connect() method. finally we have added widgets to the layout using the setCentralWidget() and addToolBar() methods.
Run the complete code and click on the button this will be the result.
Learn More on PySide6
- How to Create Label in PySide6
- How to Create Button in Python & PySide6
- How to Use Qt Designer with PySide6
- How to Add Icon to PySide6 Window
- How to Load UI in Python PySide6