Python PyQt button click example
Python PyQt Connecting Signals to Slots: Exercise-6 with Solution
Write a Python program that creates a button and when clicked it prints a message. Use the PyQt module.
From doc.qt.io:
QApplication Class: The QApplication class manages the GUI application's control flow and main settings.
QWidget Class: The QWidget class is the base class of all user interface objects.
QPushButton Class: The QPushButton widget provides a command button.
QVBoxLayout Class: The QVBoxLayout class lines up widgets vertically.
Sample Solution:
Python Code:
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout
from PyQt5.QtCore import pyqtSignal
class CustomWidget(QWidget):
# Define a custom signal
button_clicked = pyqtSignal()
def __init__(self):
super().__init__()
layout = QVBoxLayout()
# Create a custom button
self.custom_button = QPushButton("Custom Button", self)
layout.addWidget(self.custom_button)
# Connect the button's clicked signal to the custom signal
self.custom_button.clicked.connect(self.button_clicked)
self.setLayout(layout)
def custom_slot():
print("The custom button is clicked.")
def main():
app = QApplication(sys.argv)
window = CustomWidget()
window.setWindowTitle("Custom Widget Example")
window.setGeometry(100, 100, 400, 200) # (x, y, width, height)
# Connect the custom signal to the custom slot
window.button_clicked.connect(custom_slot)
window.show()
sys.exit(app.exec_())
if __name__ == "__main__":
main()
Explanation:
In the exercise above -
- Import the necessary modules from PyQt5.
- Create a custom "QWidget" class named "CustomWidget" that inherits from "QWidget". Inside this class, we define a custom signal called "button_clicked".
- Design a custom button called self.custom_button and connect its clicked signal to the custom ‘button_clicked’ signal.
- Define a custom slot function called "custom_slot()" that reacts to button presses. In this case, it prints a message when the button is clicked.
- In the main function, we create the PyQt application, instantiate the "CustomWidget" class, set the window properties, and display the main window.
Output:
The custom button is clicked. The custom button is clicked. The custom button is clicked.
Flowchart:
Python Code Editor:
Previous: Python PyQt comboBox example.
Next: Python PyQt custom signal example.
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.
It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.
https://w3resource.com/python-exercises/pyqt/python-pyqt-connecting-signals-to-slots-exercise-6.php
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics