1 Utilisation de la bibliothèque Qt pour faire du graphisme en C : Présentation

1 Utilisation de la bibliothèque Qt pour faire du graphisme en C : Présentation : Qt est une bibliothèque multiplateforme (compatible avec Windows, Linux, Mac OS..) utilisé fondamentalement pour créer des GUI (programme utilisant des fenêtres). C’est aussi un framework qui met à votre disposition une multitude d’outils pour des programmes plus efficaces. Qt est utilisé pour réaliser plusieurs GUI très connus: Adobe Photoshop Elements, de Google Earth ou encore de Skype. Installation : -Télécharger Qt, version LGPL (gratuite) : http://qt-project.org/downloads. Vous devez choisir entre Qt SDK (bibliothèque Qt + IDE Qt Creator) ou Qt Framework (bibliothèque Qt seule). Ensuite Choisissez le fichier en fonction de votre OS. -Lancez l’installation et suivez les différentes étapes. Si vous avez choisi la version Qt SDK, cochez Run Qt Creator. Création d’un nouveau projet avec Code Blocks : - Ouvrez Qt et créez un nouveau projet. Choisissez Qt4 Project et cliquez sur go. - Donnez un nom à votre fichier puis cliquez sur suivant. - Donner le répertoire de Qt. Cliquez sur les points de suspension, fermez la première fenêtre qui s’ouvre. Dans la deuxième, choisissez le dossier avec les chiffres (5.0.2) (sous dossier de Qt, les chiffres dépendent de la version installée.) - Code Blocks génère un fichier de base. - Pour tester que tout fonctionne, cliquez sur Build. - Allez dans le dossier où vous avez enregistré le projet, dans le dossier bin puis dans le dossier release. - Copiez les fichiers Correction des erreurs QtCore4.dll (http://fr.topdll.com/download/qtcore4.dll), Correction des erreurs QtGui4.dll (http://fr.topdll.com/download/QtGui4.dll) et mingwm10.dll qui se trouve généralement dans l’emplacement C:\mingw\bin. - Lancez le fichier exécutable (ProjetQt.exe). Si tout fonctionne, vous devriez avoir une fenêtre avec un bouton Quit. Il est toujours possible d’utiliser la console Qt en tapant le chemin du projet, puis les fonction qmake –project, qmake et make. En se plaçant dans le dossier debug il est possible d’ouvrir l’exécutable. Utilisation de la bibliothèque Qt pour faire du graphisme en C: 2 Une application Qt est une application graphique prend pour concept de base le widget. C’est l'entité de base d'une interface graphique qui réagit aux actions d'un utilisateur : manipulation de la souris, du clavier et tout autre évènement du système graphique. Les widgets sont de formes rectangulaires et sont organisés hiérarchiquement. Fonctions de base : La classe QApplication : Une application Qt est un objet de la classe QApplication. Il se charge de la gestion des évènements d'une application donnée : c'est la classe centrale de Qt qui reçoit de l'environnement graphique des évènements et qui les transmet à un objet graphique particulier (widget). Chaque programme ne comporte qu'un objet de type QApplication et la variable globale qApplication fait référence à cet objet (objet défini par extern QApplication *qApplication). Le fichier qapplication.h contient les déclarations de la classe QApplication doit être inclus dans les programmes utilisant Qt #include <qapplication.h> La classe QPushButton Le fichier qapplication.h ne contient pas tous ce dont une application Qt a besoin. Il est souvent nécessaire d'inclure d'autres fichiers d'interface, selon les besoins de l'application que l'on développe. Par exemple, si l'on veut utiliser d'autres objets graphiques, un bouton par exemple, on devra inclure le fichier qpushbutton.h. #include <qpushbutton.h> Un bouton est un objet de la classe QPushButton et possède par défaut un aspect prédéfini. Il existe encore d’autres formes de bouton. Créer une QApplication : Une application Qt commence toujours par la création d'un objet de la classe QApplication de la manière QApplication nom_de_l'apli (argc, argv ); Exemple On a un objet application (nommé "a"), un widget (nommé "hello"). Le widget est affecté à l'application, puis l'application exécutée. #include <qapplication.h> #include <qpushbutton.h> int main( int argc, char **argv ) { QApplication a( argc, argv ); QPushButton hello( "Hello "); hello.resize( 300, 30 ); //taille de la fenêtre a.setMainWidget( &hello ); //le définit comme widget principal 3 hello.show(); // Un widget n'est jamais visible quand on le crée. Il faut appeler QWidget::show() pour le rendre visible. return a.exec(); // le main() passe le contrôle à Qt et permet l’execution } 2.4Gérer des évènements Qt propose un système d'appels entre objets original. Chaque objet Qt peut émettre des signaux, et peut être doté de slots. Le lien entre un signal et un slot se fait à l'aide de la simple instruction connect. Par exemple, l'objet standard QButton est doté d'un signal nommé clicked() qui est déclenché lorsque l'utilisateur clique sur le bouton (soit à l'aide de la souris, soit en le validant au clavier, peu importe). De même, la fonction quit() de l'objet standard QApplication est en fait un slot. Il nous suffit donc d'ajouter juste avant return a.exec() la ligne de code suivante : QObject : :connect( &hello, SIGNAL(clicked()), &a, SLOT(quit()) ) ; Le système de communication établi en Qt est basé sur cette notion d'émission et réception de signaux. L'objet émetteur du signal n'a pas à se soucier de l'existence d'un objet susceptible de recevoir le signal émis. Ce qui permet une très bonne encapsulation et le développement totalement modulaire. Un signal peut être connecté à plusieurs slots et plusieurs signaux à un même slot. 2.5Exemple commenté Prenons l'exemple d'un programme permettant de créer une fenêtre dans laquelle se trouve un bouton. #include <qapplication.h> #include <qpushbutton.h> #include <qfont.h> class MyWidget : public QWidget { public: MyWidget( QWidget *parent=0, const char *name=0 ); }; MyWidget::MyWidget( QWidget *parent, const char *name ) : QWidget( parent, name ) { setMinimumSize( 200, 120 ); setMaximumSize( 200, 120 ); QPushButton *quit = new QPushButton( "Quit", this, "quit" ); quit->setGeometry( 62, 40, 75, 30 ); //Géométrie du bouton définie dans la fenêtre suivant (x,y,w,h) 4 quit->setFont( QFont( "Times", 18, QFont::Bold ) ); //définition de la police et taille du texte connect( quit, SIGNAL(clicked()), qApp, SLOT(quit()) ); } //Effectue la fonction quit en cliquant sur le bouton "quit". int main( int argc, char **argv ) { QApplication a( argc, argv ); MyWidget w; w.setGeometry( 100, 100, 200, 120 ); //Géométrie de la fenêtre définie dans l'écran suivant (x,y,w,h) a.setMainWidget( &w ); w.show(); return a.exec(); } Fonctions graphiques Généralité sur le dessin Les outils de bases pour dessiner sous Qt sont :  Le pen  Le Brush Le pen Le pen ou le stylo définit les contours des formes (rectangles, ellipse…). On peut soit modifier sa forme soit sa couleur. Au cours d'un programme il est possible d'utiliser des stylos préalablement déclarés ou en spécifier un par fonction. 5 Le Brush Le brush ou brosse permet de remplir une forme suivant un style ou une couleur différents. 6 Quelques fonctions graphiques de bases 1void QPainter::drawPoint ( int x, int y ) Dessine un point à (x, y) void QPainter::drawLine ( int x1, int y1, int x2, int y2 ) Dessine une ligne de (x1, y1) à (x2, y2) place le pen à (x2, y2) void QPainter::drawLine ( const QPoint & p1, const QPoint & p2 ) Dessine une ligne de p1 à p2. void QPainter::lineTo ( int x, int y ) Dessine une ligne de la position initiale du pen à (x, y) et (x, y) devient la nouvelle position du pen. void QPainter::moveTo ( int x, int y ) Place le pen à la position (x, y) void QPainter::drawRect ( int x, int y, int w, int h ) Dessine un rectangle dont le coin supérieur gauche est à (x,y) de largeur w et de hauteur h uploads/s3/ graphisme-avec-le-qt 1 .pdf

  • 32
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager