[Qt] Utilisation sous Visual Studio 2005

Rentrons maintenant dans le vif du sujet. Je ne vais pas trop rentrer dans les détails de la programmation avec Qt mais plutôt vous présenter les points essentiels si vous voulez débuter ou programmer avec Qt et Visual Studio :

  • Les programmes installés par Qt.
  • La compilation d’une application.
  • Le principe des signaux et slots.

Après avoir télécharger votre version de Qt, rajoutez le “Visual Studio Add-in” pour vous retrouver comme à la maison ! Pour le moment seul Visual Studio 2005 est supporté, mais on attend une mise à jour pour le 2008 avec impatience.

Vous pouvez bien sur développer avec votre IDE favoris, mais le but de cette articles porte sur son intégration dans Visual Studio 2005.

Programmes :

Qt Assistant :

Vous allez en passer du temps au début et même par la suite, l’assistant contient toute la documentation nécessaire pour comprendre le fonctionnement de tous les modules de Qt, n’hésitez pas à y aller et faire une recherche directement de ce que vous avez besion.

En effet, il faut savoir que Qt implémente des librairies énormes, plus besoin de coder certaines fonctions. Par exemple avec QString, au lieu de string, vous avez une multitude de fonctions à appeler, comme “compare”, “count”, “replace”, “insert”, on se retrouve un peu comme en C#. On pourra caster plus facilement, faire une recherche d’un caractère, etc.. c’est pour cela que la documentation est très importante à lire pour éviter de coder des fonctions existantes. Tous est fait encore une fois pour vous faciliter la tâche.

Qt Designer :

L’interface graphique d’une application peut être soit codé entièrement “à la main” sans designer ou alors créée avec un designer. Nous ne pourrons pas utiliser le designer de Visual Studio puisque le nommage est différent, mais vous verrez que celui proposé est très bien fait.

image

On y retrouve tous ce dont nous avons besoin.

Lors de son implémentation sous Visual Studio, les fichiers seront mis dans “Generated Files” et porteront l’extension “.ui” si vous double-cliquez dessus vous verrez le code de la fenêtre. Une astuce simple pour modifier la fenêtre est de faire “clic-droit”, “ouvrir avec” et sélectionner “designer”, vous vous retrouverez alors dans le designer de Qt.

Qt linguist :

C’est un programme de traduction, il suffira de donner le fichier avec le texte à traduire (généré par Qt) et l’application devient multilingue.

Pour permettre de générer le fichier, il faut quand même faire une petite manipulation. Encapsuler tous les textes à traduire par tr(“ “)

Par exemple : QString(tr(« Salut Yann Garit« ));

Il y a d’autres paramètres à prendre en compte avant de pouvoir mettre que des tr(), je vous invite à lire la doc sur QTranslator.

Qt Examples and demos :

Très pratique pour comprendre le fonctionnement, Qt contient un grand nombre d’exemples pour tous les différents modules, un logiciel de chat, des programmes utilisant du Xml, du javascript. Vous avez un accès complet aux sources pour l’étudier.

Compilation :

Commandes:

Le Framework étant multiplateforme, la compilation est donc particulière. Je ne parlerais ici de la compilation que pour Visual Studio donc sous Windows.

Il existe différents programmes pour compiler une application, je vais vous parlez des 2 que je connais, qmake (fournit avec Qt) et cmake.

Pour les petites applications, qmake vous suffira amplement, il permet à partir d’un simple main.cpp de vous générer le fichier “.vcproj”, vous reconnaissez l’extension? et oui c’est pour Visual studio 😉

Pour commencer une application, crée un fichier “main.cpp” avec comme contenu

main.cpp

#include <QApplication>#include <QPushButton>

int main(int argc, char *argv[])

{

QApplication app(argc, argv);

QPushButton bouton(« Salut les newbies »);

bouton.show();

return app.exec();

}

Vous pouvez oublier iostream, Qt n’en a plus besion. Seul <QApplication> est nécessaire pour commencer.”app” indique l’application que vous creez.QPushButton permet l’ajoute d’un bouton. On l’avais deviné je pense.

Lancer maintenant “Qt Command Prompt” que vous trouverez dans le répertoire Qt.

image

Allez dans le répertoire de votre projet  (il faut faire “cd” si vous ne le saviez pas…)

Il faut ensuite taper 2 commandes :

qmake –project : il va vous générer en .pro, commun à toutes les plateformes et qui contient les informations sur l’emplacement des fichiers cpp, des .h ainsi que des .ui (designer).

qmake : génération du MakeFiles contentant toutes les infos pour créer sous différentes plateformes mais aussi pour gérer les .ui.

Enfin générer le fichier pour Visual Studio:

qmake –tp vc :  vous pouvez maintenant débugger, builder directement avec votre outil préféré 😉

Attention cependant lors de l’exécution de l’exe pour la 1er fois, il va vous dire qu’il manque des dll, allez les chercher dans le répertoire d’installation de Qt dans “bin”.

Lorsque vous ajouter un fichier “.ui” venant du designer, il faut taper la commande :

nmake qui va vous générer le code correspondant à la fenêtre.

N’oubliez pas d’ajouter la référence de ce fichier générer dans votre main par exemple avec un #include ui_nomui.h

Pour chaque modification, ajout de .ui ou de fichiers .cpp, relancer les commandes pour les voir apparaître sous Visual Studio, ce n’est pas automatique malheureusement. Vous pouvez également modifier le .pro directement si vous séparez les fichiers dans différents répertoires par exemple dans ce cas la ne relancer que qmake et qmake –tp vc, en effet un qmake –project remettra votre .pro d’origine.

Ajout de modules Qt:

Vous allez vite remarquer que pour utiliser les modules de Qt, il y a des manipulations à faire, en effet un #include <QtNetwork> ne marchera pas, il ne trouvera pas la librairie tout seul.

Il faut modifier le .pro.

Ouvrez en un pour mieux comprendre :

TEMPLATE = appTARGET =

DEPENDPATH += .

INCLUDEPATH += .

# Input

FORMS += mainwindow.ui

SOURCES += main.cpp

On y retrouve les forms, en effet j’ai rajouter un fichier .ui dans le répertoire. Pour en ajouter plusieurs il suffit de les séparer par un \De même, si vous aviez un .h , il y aurait un HEADERS +=Pour rajouter un module il faut rajouter une ligne :

Qt += « nommodule”

Voila un .pro plus complet pour mieux comprendre :

TEMPLATE = appTARGET =

DEPENDPATH += .

INCLUDEPATH += .

Qt+= network script

# Input

FORMS += helpdialog.ui \

mainwindow.ui \

topicchooser.ui

SOURCES += main.cpp \

helpwindow.cpp \

topicchooser.cpp \

fontsettingsdialog.cpp

HEADERS += helpwindow.h \

topicchooser.h \

fontsettingsdialog.h

RESOURCES += assistant.qrc

J’ai ici rajouté la possibilité d’utiliser le module QtNetwork et QtScript, il me suffira de rajouter les #include correspondant dans les .cpp pour pouvoir utiliser les fonctions dans les différents classes.

Pour mieux comprendre :

image

Voila les commandes basiques pour compiler un projet. Cependant, vous allez vite vous rendre compte que pour de gros projet cross-plateforme, fonctionnant avec vos propres autres librairies, que qmake devient limité. Il faudra donc passer à cmake qui permet une multitude de fonctionnalité. Mais vu sa difficulté, je vais vous épargner une explication que moi même j’ai du mal à tous comprendre. Lisez les documents officiels sur le sujet si vous voulez vous lancer.

Personnellement j’ai un .bat pour travailler avec cmake qui met à jour mon programme… il m’a juste fallu trouver où rajouter les modules et les .ui ou .cpp/.h. C’est ça de continuer un programme existant…

Signaux/Slots:

Une application de type GUI réagit par des évènements. C’est pourquoi la fenêtre est dynamique.

Un signal: Message envoyé lorsqu’un évènement se produit.

Exemple: on clic sur un bouton.

Un slot: Fonction appelée lorsque l’évènement s’est produit. Le signal appel le slot, concrètement un slot est une méthode.

Exemple: Intégration dans un bouton :

QObject::connect(m_bouton, SIGNAL(clicked()), qApp, SLOT(quit()));

On a ajouté à un bouton la fonctionnalité que lorsque l’on clique dessus, alors on lance la fonction quit() qui ferme l’application.

Les différents éléments d’une application Qt, comme une radio box, une check box contiennent des signaux et des slots déjà implémenté qu’il suffit d’appeler. N’hésitez pas encore une fois à lire la doc.

Vous pouvez également créer vos signaux et vos slots.

Vous avez maintenant tout ce qu’il faut pour travailler sous l’environnement Visual Studio, il ne vous reste ensuite qu’a apprendre à utiliser Qt en général. Pour cela, il n’y a pas de secret, il faut pratiquer. Je vous conseil un excellent tutorial qui m’a d’ailleurs inspiré pour différents éléments de mes articles et qui vous donnera les bases pour Qt: Tutorial Qt. Vous serez ensuite comme moi capable de créer seul vos applications et vous verrez en quoi Qt est génial.

Mon prochain article vous parlera de mon sujet de stage actuel, basé sur Qt et le module de Scripting.

Publicités

un commentaire

  1. […] En ayant pris soin de remplir le fichier de configuration (cf article précédent). […]

Répondre

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l'aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s

%d blogueurs aiment cette page :