100 likes | 216 Views
Toolkits. Il existe 4 principales boites à outils (toolkits) graphiques : Xt / Motif Gtk Windows Qt. Seul certaines fonctionnent sur toutes les plates-formes : Unix (Linux) Mac Windows. Qt. Qt est une bibliothèque contenant : Fonctions d’interfaces graphique
E N D
Toolkits • Il existe 4 principales boites à outils (toolkits) graphiques : • Xt / Motif • Gtk • Windows • Qt • Seul certaines fonctionnent sur toutes les plates-formes : • Unix (Linux) • Mac • Windows
Qt • Qt est une bibliothèque contenant : • Fonctions d’interfaces graphique • Composants d’accès aux données • Connexions réseaux • Gestions de processus • Développée en C++ par la société Trolltech (www.trolltech.com) • Sous licence GPL pour les projets « libres » • Disponible pour Windows, Unix et Mac OS
Signals et slots (1) • Mécanisme de communications entre les composants de Qt
Signals et slots (2) • Exemple concret (DrawQt) Clic sur le bouton “ellipse” Lors du clic sur le bouton : Envoie du signal clic par le bouton Ce signal est connecté à la méthode “ClicEllipse” Execution de la méthode “ClicEllipse”
Signals et slots (3) Définir un signal / slot • class myClass : public Qobject { • Q_OBJECT • … • signals: • void event (); • … • public slots: • void action (); • … • }; Fichier.h • … • emit(evenementSurvenu()); • … • connect(myClass,SIGNAL(event(),myClass,SLOT(action()); Fichier.cxx
moc moc_maclasse.cpp gcc maclasse.obj Signals et slots (4) • Mécanisme interne : maclasse.h maclasse.cpp
GUI (Graphic User Interface) 2 méthodes de définir une GUI en Qt • A la main (long, mais efficace et instructif) • A l’aide du Designer : uic Sauvegarde monfichier.ui monfichier.h Description interface
Exemple simple #include <QApplication> #include <QPushButton> int main(int argc, char *argv[]) { QApplication app(argc, argv); QPushButton hello("Hello world!"); hello.resize(100, 30); hello.show(); return app.exec(); } Headers de Qt Création de l’application Création d’un bouton Redimentionnement Affichage du bouton Lancement de l’application et attente de fin