1
2 Boite à outils Qt ● Boite à outils C++ pour le développement multi-plateforme d'application en environnement graphique (GUI) – des fonctions GUI (GUI = graphical user interface) – des composants d'accès aux données, de connexion réseau, de gestion des process ● Portabilité entre Microsoft Windows, Mac OS X, Linux, et toutes les principales variantes d'Unix commerciales ● Développé par la société Trolltech – ● À la base de plusieurs milliers d'applications fonctionnelle à travers le monde (par ex. KDE) ● Diffusé en différentes éditions – L'édition Qt Commerciale - pour le développement de logiciel commercial – L'édition Qt Open Source - pour le développement de logiciel Libre et Open Source seulement (GNU General Public License)
3 Couches logicielles ● Qt est une surcouche juste au-dessus du graphique natif de la machine cible.
4 Signaux et Slots... ● Mécanisme de communication entre les composants de Qt ● Un signal est émis lorsqu'un évènement a lieu. – les widgets de Qt ont de nombreux signaux prédéfinis, mais nous pouvons toujours dériver des widgets pour leur ajouter nos propres signaux. ● Un slot est une fonction appelée en réponse à un signal donné. – les widgets de Qt ont de nombreux slots prédéfinis, mais c'est une pratique courante de dériver les widgets et d'ajouter nos propres slots.
5... Signaux et Slots ● Exemple - DrawQt Cliquez sur le bouton “ellipse” ● Lorsque vous cliquez sur le bouton : – le bouton émet le signal “clicked” – ce signal est connecté à la méthode "ClickEllipse ()" – La méthode "ClickEllipse ()" est exécutée
6 Définition des Signaux et Slots #include “MyClass.h” … // Émet le signal event() emit(event()); … // Connecte le signal event() avec // le slot action() connect (myClass, SIGNAL (event (), myClass, SLOT (action ());... Fichier MyClass.cxx #include class myClass : public QObject { Q_OBJECT … signals: void event(); … public slots: void action(); … }; Fichier MyClass.h
7 Meta-Object Information ● Le compilateur de méta-objets (moc) analyse les déclaration de class dans un fichier C++ et génère du code C++ qui initialise les méta- objets. ● Le méta-objet contient les noms de tous les membres signaux et slots, ainsi que les pointeurs vers ces fonctions. myClass.h myClass.cxx moc_myClasse.cpp moc myClass.o g++
8 Qt Designer ● C'est un outils pour concevoir et construire une interface graphique (GUIs) à partir de composants Qt. – Il vous permet de concevoir et construire des widgets et des dialogues en utilisant des objets à l'écran reposants sur les mêmes widgets qui seront utilisés dans votre application. – Les composants créés avec Qt Designer peuvent également bénéficier des signaux et slots de Qt, et ils peuvent être prévisualisés de sorte à garantir qu'ils auront exactement l'apparence et le style d'utilisation que vous souhaitez. ● Le compilateur d'interface utilisateur (uic) lit un fichier définition d'interface utilisateur (.ui) au format XML tel que généré par Qt Designer et créé le fichier entête ou source C++ correspondant. – Il génère également un fichier image qui incorpore les données des image brutes dans le code source C++. Interface Description Save myFile.ui uic myFile.h
9 Exemple d'application Qt #include int main(int argc, char* argv[]) { QApplication app(argc, argv); QPushButton hello("Hello world!"); hello.resize(100, 30); hello.show(); return app.exec(); } Fichier main.cxx Crée une application Qt Crée un bouton Redimensionne le bouton Montre le bouton Lance l'application (et attend un signal)