reseau social

Découverte QT 3, 1ère partie

Un article de ToutProgrammer.com.

QT, le framework de TrollTech, permet la réalisation d'applications multi-plateformes. Hervé Lefebvre nous propose une série d'articles pour apprendre à utiliser efficacement cet outil qui devrait voir prochainement la version 4 publiée.

La librairie graphique Qt, développée par la société Trolltech est principalement connue dans le monde Linux pour être à la base de l'environnement graphique KDE. Il ne faut cependant pas oublier que cette librairie existe tant sous Linux et autres Unix, mais également sous Windows, et désormais pour MacOS. Cette librairie peut donc intéresser beaucoup de développeurs.

Trolltech vient donc d'annoncer la disponibilité de Qt 3-bêta 3. Par curiosité, j'ai voulu voir ce que nous préparait TrollTech pour Qt 3.0.0, et donc en conséquence, ce que nous prépare également KDE 3.

Comme d'habitude, l'installation s'est déroulée sans problème, l'ensemble de la librairie et des exemples s'est compilé sans incident. La procédure de compilation utilise l'outil "qmake" de trolltech qui permet de générer des MakeFiles à partir d'un fichier de projet ".pro". Cet outil est particulièrement appréciable lorsque l'on développe un logiciel appelé à fonctionner sur plusieurs plates-formes (Linux et Windows par exemple), car cela évite d'avoir à maintenir des fichiers Makefile adaptés à chaque environnement.

QT Designer

La nouveauté la plus visible est l'outil "qtdesigner", un outil RAD qui permet de créer visuellement des interfaces graphiques. Cet outil était déjà présent dans les versions précédentes de Qt, mais de l'avis général était incomplet et inachevé. Désormais c'est un véritable outil RAD qui ravira les développeurs. L'outil permet bien sûr de placer sur ses formulaires ou boîtes de dialogue tous les widgets disponibles dans Qt, mais également de connecter les slots et les signaux entre eux. Par exemple, si vous avez dans votre boîte de dialogue un bouton et une lineedit, il vous suffit à l'aide de la souris de tracer un trait entre ces deux composants, pour connecter par exemple le signal clicked du bouton au slot cleardu lineedit. Ainsi, lorsque l'utilisateur cliquera sur le bouton, la ligne de saisie sera effacée.

Richtext Editor

Une autre nouveauté est le "richtextcontrol". Qt propose désormais un Widget permettant de présenter ou d'éditer du texte enrichi : textes avec différentes polices, corps (gras, soulignés etc.), couleurs, justifiés etc. Cette nouveauté avait été développée spécifiquement pour Qt 3, mais des développeurs de KOffice l'avaient adaptée pour Qt 2.3, ce nouveau contrôle était en effet nécessaire pour la poursuite du développement de la suite KOffice. Ainsi, cette nouveauté n'en est plus vraiment une, puisque les développeurs ont pu en bénéficier depuis la disponibilité de Qt 2.3. Ce (pas tout à fait) nouveau Widget est d'une efficacité redoutable. Dans les exemples proposés avec Qt, celui qui concerne le richtext relègue au rang d'outil obsolète le notepad de windows, et fait jeu égal avec le wordpad ... en moins de 200 lignes de code ! Avec, s'il vous plaît, la possibilité d'ouvrir plusieurs fichiers simultanément.

Richtext Editor

Enfin, l'autre gros morceau concerne les bases de données. Qt offre désormais des classes permettant de se connecter aux bases de données, exécuter des requêtes SQL, manipuler les résultats, et bien sûr en visualiser le contenu. Pour l'instant la connectivité est assurée avec Oracle, PostgreSQL et MySQL. Espérons que Sybase et Interbase seront prochainement supportés. Les pilotes de connexions aux SGBDR peuvent être compilés au niveau de la librairie Qt, ou bien compilés sous forme de plugins qui seront chargés au moment de l'exécution du programme. Cette dernière possibilité est de loin préférable, puisqu'elle permet de mettre à jour uniquement le driver en cas d'évolution, au lieu d'avoir à redéployer son application complète.

Signalons également l'apparition de l'outil QtLinguist, qui permet d'internationaliser son application. Cela peut sembler faire un double usage avec les fonctions GNU i18n() ou bien KBabel, mais il ne faut pas oublier que Qt permet également de développer des applications commerciales sous Windows ou Macintosh (ou Unix).

Dans un prochain article, nous verrons un peu plus en détail certains aspects techniques de Qt 3, et tenterons de déceler les évolutions de performances par rapport à Qt 2.x.

[modifier] Historique de l'article

Cet article, réalisé par Hervé LEFEBVRE, a été publié pour la première fois le 30 juillet 2001 sur le site LinuxFrench.net sous licence Creative Commons License Non Commerciale.