The signal and slot architecture is design to simplify communication between objects. It's a fact that GUI programming is mostly event driven. The traditionally approach to event driven programming is to use callbaks. Callbacks have a number of limitations that Qt tries to solve with it's signal and slot architecture. The concept is that every object can emit signals. For example when a button is clicked it emits a “clicked()” signal. Signals does not do anything alone, but when connected to a slot the code in the slot will be executed every time the signal is emitted. In python every function is a slot. It's possible to connect one signal to multiple slots
Connecting signals and slots.
This example demonstrates how to use the connect method to connect signals and slots.
from PyQt4.QtGui import *
from PyQt4.QtCore import *
#First we create a QApplication and QPushButton app=QApplication(sys.argv) exitButton=QPushButton("Exit")
#Her we connect the exitButton's "clicked()" signals to the app's exit method. #This will have the effect that every time someone clicks the exitButton the app.exit method will execute and the application will close. QObject.connect(exitButton,SIGNAL("clicked()"),app.exit) button.show() #Start the evnt loop sys.exit(app.exec_())