Development/Tutorials/Python introduction to signals and slots

    From KDE TechBase
    Revision as of 22:03, 9 January 2007 by Tampakrap (talk | contribs) (start on python signal and slots tutorial)
    (diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
    Warning
    This tutorial is work in progress.


    Abstract

    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 * import sys

    if __name__=="__main__":

       #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_())
    


    Signals and slots with parameters