Graphisme Avec Le QT
Graphisme Avec Le QT
Graphisme Avec Le QT
Prsentation :
Qt est une bibliothque multiplateforme (compatible avec Windows, Linux, Mac OS..) utilis fondamentalement pour crer des GUI (programme utilisant des fentres). Cest aussi un framework qui met votre disposition une multitude doutils pour des programmes plus efficaces. Qt est utilis pour raliser plusieurs GUI trs connus: Adobe Photoshop Elements, de Google Earth ou encore de Skype.
Installation :
-Tlcharger Qt, version LGPL (gratuite) : http://qt-project.org/downloads. Vous devez choisir entre Qt SDK (bibliothque Qt + IDE Qt Creator) ou Qt Framework (bibliothque Qt seule). Ensuite Choisissez le fichier en fonction de votre OS.
-Lancez linstallation et suivez les diffrentes tapes. Si vous avez choisi la version Qt SDK, cochez Run Qt Creator.
Une application Qt est une application graphique prend pour concept de base le widget. Cest l'entit de base d'une interface graphique qui ragit aux actions d'un utilisateur : manipulation de la souris, du clavier et tout autre vnement du systme graphique. Les widgets sont de formes rectangulaires et sont organiss hirarchiquement.
Fonctions de base :
La classe QApplication :
Une application Qt est un objet de la classe QApplication. Il se charge de la gestion des vnements d'une application donne : c'est la classe centrale de Qt qui reoit de l'environnement graphique des vnements 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 rfrence cet objet (objet dfini par extern QApplication *qApplication). Le fichier qapplication.h contient les dclarations 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 ncessaire d'inclure d'autres fichiers d'interface, selon les besoins de l'application que l'on dveloppe. 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 possde par dfaut un aspect prdfini. Il existe encore dautres formes de bouton.
hello.show(); // Un widget n'est jamais visible quand on le cre. Il faut appeler QWidget::show() pour le rendre visible. return a.exec(); // le main() passe le contrle Qt et permet lexecution }
Le systme de communication tabli en Qt est bas sur cette notion d'mission et rception 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 trs bonne encapsulation et le dveloppement totalement modulaire. Un signal peut tre connect plusieurs slots et plusieurs signaux un mme slot.
2.5Exemple comment
Prenons l'exemple d'un programme permettant de crer une fentre 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 ); //Gomtrie du bouton dfinie dans la fentre suivant (x,y,w,h)
quit->setFont( QFont( "Times", 18, QFont::Bold ) ); //dfinition 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 ); //Gomtrie de la fentre dfinie dans l'cran suivant (x,y,w,h)
Fonctions graphiques
Gnralit sur le dessin Les outils de bases pour dessiner sous Qt sont :
Le pen Le Brush
Le pen Le pen ou le stylo dfinit 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 pralablement dclars ou en spcifier un par fonction.
Le Brush Le brush ou brosse permet de remplir une forme suivant un style ou une couleur diffrents.
Dessine une ligne de (x1, y1) (x2, y2) place le pen (x2, y2)
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 )
Dessine un rectangle dont le coin suprieur gauche est (x,y) de largeur w et de hauteur h