Gestion évènementielle QT5
Notion d'évènement Evènement OBJET Réaction
Notion d'évènement On frappe à la porte MOI PORTE ouvrir Demander qui est là
Avec QT5 Association d'un événement à une action : connect( ObjectReceveurDeLEvenement, SIGNAL(nomDeLEvenement()), ObjectTraitantLEvenement, SLOT(methodeDeTraitement()) ) ; Attention !!!! Ce « connect » n'a rien à voir avec le « connect » vu lors de la programmation socket !!!
Avec QT5 Avec l'outil de développement QTCreator, la plupart des « connexions » des objets visuels sont masquées. Lorsque vous créez un projet exo et que vous associez une interface exoDlg à ce dernier, un fichier nommé ui_exodlg.h sera automatiquement créé. Ce dernier contient l'ensemble des déclarations et instanciations des objets de l'interface, ainsi que les éventuelles « connexions » entre objet et slots.
Avec QT5 Les signaux pouvant affecter un objet sont listés dans la documentation. Exemple : QFtp
Avec QT5 QFtp *monFtp=new QFtp() ; connect(monFtp,SIGNAL(readyRead()), this,SLOT(slotReadyRead()) ; connect(monFtp,SIGNAL(done(bool)), this,SLOT(slotDone(bool)) ;
Conclusion La notion de signal et de slot est liée à l'évènementiel. Une fois que la liaison entre l'évènement et la méthode de l'objet traitant l'évènement est réalisée, c'est le système qui gère les évènements. Ce n'est pas à vous d'attendre l'évènement. Les associations évènements/méthodes sont à faire dès l'instant où un objet pouvant recevoir des signaux est instancié.