w3resource

Event-Driven programming in PyQt5 with Python


Write a Python exercise that explain the concept of event-driven programming in PyQt5.

From doc.qt.io:

QApplication Class: The QApplication class manages the GUI application's control flow and main settings.

QMainWindow Class: The QMainWindow class provides a main application window.

QPushButton Class: The QPushButton widget provides a command button.

Sample Solution:

Python Code:

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton

# Create a custom function to handle a button click event
def button_clicked():
    print("Button was clicked!")

# Create the PyQt5 application
app = QApplication(sys.argv)

# Create a main window
window = QMainWindow()
window.setWindowTitle("Event-Driven Programming Example")
window.setGeometry(100, 100, 400, 200)

# Create a QPushButton (a clickable button)
button = QPushButton("Click Me!", window)
button.setGeometry(150, 80, 100, 30)

# Connect the button's clicked signal to the custom function
button.clicked.connect(button_clicked)

# Show the main window
window.show()

# Start the event loop to listen for events
sys.exit(app.exec_())

Explanation:

In the exercise above -

  • Import the necessary PyQt5 modules.
  • Create a custom function button_clicked that will handle the button click event.
  • Create a PyQt5 application using QApplication.
  • Next, we create a main window (QMainWindow) with a title and dimensions.
  • Add a "QPushButton" widget labeled "Click Me!" to the main window and position it.
  • When the button is clicked, the button_clicked function will be executed.
  • Display the main window using window.show().
  • Finally, we start the event loop with app.exec_().

Output:

Button was clicked!
PyQt: Event-Driven programming in PyQt5 with Python. Part-1

Flowchart:

Flowchart: Event-Driven programming in PyQt5 with Python.

Go to:


Previous: Python PyQt Event Handling Home.
Next: Capture and display mouse events in PyQt5 with Python.

Python Code Editor:


What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.