Blog ENI : Toute la veille numérique !
🐠 -25€ dès 75€ 
+ 7 jours d'accès à la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Maîtrisez Qt
  3. Introduction
Extrait - Maîtrisez Qt Guide de développement d'applications professionnelles (3e édition)
Extraits du livre
Maîtrisez Qt Guide de développement d'applications professionnelles (3e édition)
1 avis
Revenir à la page d'achat du livre

Introduction

Objectifs et méthode

Ce livre a pour objectif de vous faire découvrir l’environnement de développement Qt et de vous apprendre à développer des applications très performantes en un minimum de temps, qui plus est sur différents systèmes d’exploitation (iOS, MacOS, GNU/Linux, Windows, BSD, Android et d’autres) et différentes plateformes (PC, smartphone, tablette, nano PC, matériel embarqué et d’autres).

Nous ne prétendons pas vous présenter le détail de toutes les API, classe par classe et fonction par fonction. Ces informations sont disponibles dans la documentation en ligne de Qt, qui est très bien faite (voir la section Documentation de ce chapitre).

En revanche, nous souhaitons vous donner toutes les explications et détails sur la façon dont Qt est pensé et structuré et présenter les bonnes pratiques pour développer avec lui. Cela sera fait grâce à une présentation progressive des concepts et API de Qt, en partant des fondations pour aller jusqu’aux API graphiques, Qt Widgets et Qt Quick.

Cette approche vous amènera progressivement de la découverte de l’environnement de développement et des concepts fondamentaux de Qt jusqu’au développement d’une application complète, multiplateforme et multisystème d’exploitation...

Glossaire

Nous utiliserons un certain nombre de termes techniques ou théoriques dans ce livre. La connaissance de leur signification est un atout indéniable pour la compréhension de cet ouvrage, même si nous avons fait en sorte que vous soyez le moins possible bloqué par des termes trop sophistiqués.

L’usage de certains termes est indispensable néanmoins pour la description de Qt et de C++, et une partie d’entre eux est parfois ambiguë ou leur définition peut varier selon la personne qui l’emploie. C’est pourquoi nous avons intégré ce petit glossaire qui définit certains des termes que nous employons fréquemment et lève l’ambiguïté sur certains autres.

EDI - Environnement de Développement Intégré

Il s’agit du logiciel qui permet à la fois d’organiser ses fichiers sources en projets, de les éditer et les compiler, tout en proposant des outils de conception d’interfaces graphiques. L’EDI de Qt s’appelle Qt Creator.

GUI - Graphical User Interface

Ce terme désigne la partie graphique des interfaces entre l’homme et la machine. Lorsque nous employons ce terme nous faisons uniquement référence au bureau du gestionnaire de fenêtre, à la fenêtre de l’application, à une boîte de dialogue ou à ses boutons....

Qt, qu’est-ce ?

Qt se prononce /kju:t/, comme le mot anglais cute qui peut être traduit par "mignon". C’est un ensemble de bibliothèques de composants C++ réutilisables, ou API (Application Programming Interface). Il a pour slogan : « Codez une fois, exécutez partout ». Sa particularité est, en effet, de disposer d’API généralistes et d’un système d’abstraction permettant de faire l’interface avec un grand nombre de systèmes d’exploitation pour PC (Windows, GNU/Linux, OS X), mais aussi pour mobiles (Symbian, Android, iOS).

Ces API sont organisées en modules, selon la terminologie Qt, possédant chacun une spécialité : le réseau, les bases de données, les graphismes 3D, les interfaces fenêtrées, etc.

Le SDK (Software Development Kit) de Qt est disponible sous forme de code compilé que vous pourrez lier directement à votre programme ou sous la forme de code source compilable sur votre plateforme. Il est généralement fourni avec Qt Creator, un EDI (environnement de développement intégré) compatible avec tous les systèmes PC et la plupart des compilateurs ainsi qu’avec Qt Design Studio, un outil de conception d’interfaces graphiques pour Quick. Depuis la version 6, le SDK est également fourni avec Qt Design Studio, un éditeur d’interfaces graphiques pour Qt Quick.

1. Histoire

Le projet Qt est né en Norvège en 1991, grâce à Haavard Nord et Eirik Chambe-Eng. En 1988, le premier s’est vu confier par une entreprise suédoise la conception et la réalisation d’une bibliothèque de développement d’interfaces graphiques. Après deux années de réflexion sur le sujet, les deux hommes entament le développement de la bibliothèque et, au terme de plusieurs années d’efforts, le cœur de Qt est créé. Celui-ci repose sur les concepts de signaux et de slots qui sont à la base de la programmation événementielle. À partir de ce cœur, les développements des composants graphiques ont débuté et les premiers widgets virent le jour. La société Trolltech...

Connaissances requises

Pour exploiter pleinement les possibilités de Qt et comprendre l’intégralité des techniques présentées dans ce livre, il est important que le lecteur vérifie qu’il possède les connaissances suffisantes sur plusieurs thèmes fondamentaux.

1. UML

Le langage UML est incontournable dans les projets de développement aujourd’hui. Nous utilisons un certain nombre de notions et de diagrammes venus d’UML dans ce livre. Nous vous invitons à vérifier vos connaissances sur les parties suivantes : cas d’usage, diagramme de flux (ou de séquence) et diagramme d’activité.

2. Patrons de conception

Nous conseillons à nos lecteurs de bien prendre connaissance de certains patrons de conception avant d’entamer la lecture de cet ouvrage. Nous avons conçu nos exemples en utilisant le patron Modèle Vue Contrôleur (MVC) pour séparer la gestion des dialogues de celle des événements et des données.

Qt impose en quelque sorte l’utilisation de ce modèle en séparant la classe qui contrôle la vue, c’est-à-dire la partie visible de l’application, de celle qui reçoit les signaux et les événements émanant de l’interface graphique.

Nous étendons simplement ce principe à toute la conception de nos applications....

Que peut-on faire avec Qt ?

Qt est vraiment incroyable, tout est possible : gérer les fichiers, les bases de données, les sockets réseau, les communications inter-processus, les threads, etc. La devise de cette plateforme est : Code once, run everywhere traduite par « Codez une fois, exécutez partout », ce qui signifie que parmi les principaux objectifs de ce framework figure la possibilité de créer des applications multiplateformes et multi-systèmes d’exploitation avec le minimum d’adaptation ; dans la plupart des cas aucune adaptation n’est même nécessaire.

Il est à noter cependant qu’avec l’évolution de Qt, mais surtout des environnements cibles, cette promesse est de plus en plus difficile à tenir, voire incongrue. En effet, comment imaginer une application conçue pour PC avec une interface graphique, pleine de champs de texte et de boutons, transposable telle quelle sur un smartphone et/ou une tablette ?

La question de l’inter-opérabilité et de l’universalité des applications doit être posée selon les termes de l’utilisateur : « ai-je envie d’utiliser la même application sur mon PC et sur ma tablette ? » et non ceux du développeur : « ai-je envie de recoder mon application sur tablette après l’avoir codée sur PC ? ». Vous verrez que développer une application inter-opérable peut se faire très simplement pour peu que la conception soit faite dans le respect du patron de conception MVC (Modèle-Vue-Contrôleur), ce qui permettra de ne recoder que la partie visuelle de l’application pour l’adapter à n’importe quelle plateforme.

Il convient de distinguer les environnement cibles et les cas d’usage avant d’envisager sérieusement la conception d’une application universelle. Les utilisateurs de tablettes ont des habitudes en matière d’ergonomie, de mise en page des applications et de navigation qu’il est important de respecter. Le non-respect de ces habitudes entraînera sans l’ombre d’un doute le rejet immédiat de l’application et sa désinstallation au profit d’une autre application plus respectueuse de...