Cette partie introduit la gestion des evenements lors d'un clic de bouton.
Pour cela, Qt possède sa propre gestion de signaux.

On définit une classe particulière maFenetre est un element graphique particulier (hérite de QWidget).
Notez la présence du mot clé Q_OBJECT en début de classe dans le fichier maFenetre.hpp.

Qt introduit de nouveaux mots clés dans les propriétés des méthodes en plus de public et private.
Le mot clé "slot" indique que ce sont des méthodes qui peuvent être connectées à la réception d'un signal Qt. C'est à dire des méthodes appelées lorsqu'un certain signal est émis (par le clic sur un bouton par exemple).

Les mots clés particuliers à Qt (slots, signal, Q_OBJECT, ...) ne font pas partis du C++ standard. Ils doivent être analysés et convertis dans du code C++ avant le passage du compilateur habituel. 
La convertion est réalisée par un outil spécifique appelé le MOC (Meta Object Compiler http://doc.qt.io/qt-4.8/moc.html) qui viens générer des fichiers supplémentaires (débuttant par moc_). Ce fichier contient une table de correspondance permettant de faire le lien entre les fonctions émettant des signaux et les fonctions les recevants.

Il est donc nécessaire d'appeler MOC sur le fichier source avant la compilation de ce fichier. 

-> Observez l'appel au moc et la demande de création du fichier moc_myWindow dans le Makefile
-> Compilez le projet à l'aide du Makefile fourni, et observez la création du fichier moc_maFenetre.cpp.
-> Lancez le programme, observez la gestion des actions suite aux clics sur les différents boutons.

-> Créez potentiellement le fichier .pro de manière habituelle si vous le souhaitez (nécessite d'ajouter l'utiliser de C++11 dans le fichier .pro (QMAKE_CXXFLAGS) ).

-> Le fichier CMakeLists.txt présente une alternative à l'utilisation de QMake. 
-> Observez ce fichier. Notez que QT4_WRAP_CPP viens désigner tous les fichiers d'en tête étant des Q_OBJECT (information nécessaire pour le passage du MOC).
-> Utilisez ce fichier pour compiler votre projet avec CMake en suivant la démarche vue dans le premier TP (n'oubliez pas générez vos fichiers temporaire dans un répertoire build/ par exemple et non pas à la racine. N'oubliez pas non plus d'enlever tous fichier temporaire laissé par l'utilisation de qmake).

-> Observez l'ordonnancement de l'execution du projet (affichage en ligne de commande, et retrouvez ces lignes dans le programme).
-> Observez la gestion des signaux dans le fichier maFenetre.cpp à l'aide de la commande connect.
La syntaxe est la suivante:
  connect([objet générant un signal],SIGNAL([nom du signal émit]),[objet receptionnant le signal],SLOT([méthode appelée à la reception du signal]))

-> Notez que la présence des deux slots de maFenetre sont appelées d'après une table de correspondance (switch(_id)) dans le fichier moc. Le fichier moc permet d'encoder en C++ la correspondance entre un signal et la méthode à appeler.

-> Ajouter à autre bouton au Widget. Faite en sorte que l'appui sur ce bouton vienne selectionner les 2 "checkBox".




