qt win opensource 3
Transcription
qt win opensource 3
1 Boite à outils Qt ● Boite à outils C++ pour le développement multi-plateforme d'application en environnement graphique (GUI) – – ● ● Portabilité entre Microsoft Windows, Mac OS X, Linux, et toutes les principales variantes d'Unix commerciales Développé par la société Trolltech – ● ● des fonctions GUI (GUI = graphical user interface) des composants d'accès aux données, de connexion réseau, de gestion des process http://doc.trolltech.com À 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) 2 Couches logicielles ● Qt est une surcouche juste au-dessus du graphique natif de la machine cible. 3 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. 4 ... 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 5 Définition des Signaux et Slots Fichier MyClass.h #include <QObject> class myClass : public QObject { Q_OBJECT … signals: void event(); … public slots: void action(); … Fichier MyClass.cxx #include “MyClass.h” … // Émet le signal event() emit(event()); … // Connecte le signal event() avec // le slot action() connect (myClass, SIGNAL (event (), myClass, SLOT (action ()); ... }; 6 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 moc moc_myClasse.cpp g++ myClass.o myClass.cxx 7 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 8 Exemple d'application Qt Fichier main.cxx #include <QApplication> #include <QpushButton> Crée une application Qt int main(int argc, char* argv[]) { QApplication app(argc, argv); QPushButton hello("Hello world!"); hello.resize(100, 30); hello.show(); return app.exec(); } Crée un bouton Redimensionne le bouton Montre le bouton Lance l'application (et attend un signal) 9