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. L'environnement de développement
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

L'environnement de développement

Objectifs

La première haie à franchir avant de commencer à développer avec Qt est la mise en place d’un environnement de développement adapté à ses besoins. Parmi ceux-ci figurent les cibles de déploiement visées, en particulier les systèmes d’exploitation et le mode de diffusion de l’application.

Ce chapitre vous aidera à vous poser les bonnes questions avant de vous lancer dans le développement de vos applications et vous permettra de mettre en place un environnement de développement adapté et évolutif.

Licence commerciale ou libre ?

Dès le téléchargement de Qt, vous devez décider quelle version de Qt vous allez télécharger. Cette question est cruciale car, en dehors du support que vous apportera l’éditeur en tant que client de la version commerciale, il existe une différence majeure entre les deux versions : la licence. Le choix de cette licence a un impact direct sur vos droits en tant qu’éditeur et diffuseur de vos créations.

Il existe trois déclinaisons de licences :

  • La licence commerciale : choisissez cette version pour le développement d’applications dont vous ne souhaitez, ou vous ne pouvez pas partager le code source, ou respectez entièrement les termes de la licence GNU LGPL version 3.

  • La licence GNU LGPL version 3 : choisissez cette version pour le développement d’applications qui respecteront entièrement les termes de la licence GNU LGPL version 3 ou GNU GPL version 3.

  • La licence Qt Marketplace : choisissez cette version pour le développement d’applications utilisées conjointement avec des composants Qt sous licence LGPL version 3 ou GNU GPL version 3.

Notez également que certaines API de Qt sont sous licence GPL et autres licences (MIT, Apache, etc.). Il conviendra de se renseigner sur les licences des composants que vous utiliserez dans vos applications, quelle que soit la configuration choisie. La page suivante vous permettra d’identifier les licences : https://doc.qt.io/qt-6/licenses-used-in-qt.html

Obligations de la licence (Lesser) GNU General Public License v3 telles que définies dans l’installeur de Qt :

  • Ne pas combiner du code développé avec une licence commerciale Qt avec du code développé avec une licence open source de Qt dans un projet ou un produit.

  • Fournir une copie de la licence et reconnaître explicitement...

Choisir son compilateur

Le choix du compilateur est lui aussi guidé par vos objectifs :

  • Votre application est-elle multiplateforme ?

  • Si oui, quels sont les systèmes visés ? Unix uniquement ? Unix et Windows ?

  • Pouvez-vous vous permettre d’utiliser le compilateur MinGW sous Windows ?

  • Les API fournies avec le compilateur vous permettent-elles d’atteindre tous vos objectifs en matière de performances et d’intégration avec le système cible ?

1. Mono-plateforme ou multi-plateforme ?

Vous utiliserez très certainement CLANG ou GNU GCC sous les systèmes dérivés d’Unix comme OS X et GNU/Linux et lierez vos programmes avec les bibliothèques standards du système d’exploitation. Les alternatives ne sont pas très nombreuses sur ces plateformes.

En revanche, si vous ciblez Windows ou toutes ces plateformes en même temps, vous devrez choisir entre le compilateur MinGW pour Windows ou bien le compilateur de Microsoft Visual C++. Les différences entre ces compilateurs sont peu importantes dans le cas d’un programme développé avec Qt et les avantages et inconvénients se partagent les points. Du point de vue des performances, la compilation est sensiblement plus rapide avec MinGW mais la différence n’est pas sensible lors du fonctionnement du programme compilé. Sachez aussi que si vous choisissez MinGW pour Windows, vous aurez un certain nombre de bibliothèques supplémentaires à livrer avec votre programme.

Visual C++ offre toutefois la possibilité de lier statiquement la bibliothèque de runtime C++ avec son exécutable.

Le choix d’un compilateur est loin d’être trivial, différents éléments entrent en ligne de compte : le budget, la confiance, l’habitude, le langage, le toolkit utilisé ainsi que les API.

Pour vous aider à faire votre choix entre Visual C++ et MinGW, nous allons étudier certains de ces points et peser le pour et le contre en toute objectivité :

  • Budget : sur le plan du budget, vous avez la possibilité de développer...

Installer l’environnement de développement

Avant de commencer à développer avec Qt, vous devez disposer d’une chaîne de compilation, il s’agit de tous les outils permettant de transformer du code source en un fichier binaire exécutable. Parmi ceux-ci se trouvent le pré-compilateur, le compilateur et l’éditeur de liens.

Qt ne contient qu’un ensemble de bibliothèques, quelques utilitaires et un EDI. Vous êtes responsable du choix de la chaîne de compilation et du débogueur qui l’accompagne.

Avant toute chose, ayez bien conscience que le choix des différentes chaînes de compilation sera guidé non pas par l’environnement sur lequel vous compilez, mais par les environnements sur lesquels vous exécuterez votre programme.

En effet, supposons que vous ayez décidé d’exécuter votre programme sur des appareils différents comme des téléphones, tablettes, Raspberry Pi ou PC, vous devrez disposer des chaînes de compilations vous permettant de produire des binaires adaptés.

En règle générale, le développement est fait sur la plateforme de prédilection du développeur, chaque développeur d’une équipe pouvant développer sur des plateformes différentes dotées de systèmes d’exploitation et d’architectures différentes. La création des binaires de test, de production ou de distribution est généralement assurée par une usine logicielle comme Gitlab CI ou Jenkins CI. Cette usine logicielle dispose de plusieurs agents de compilation et de tests qui permettront de produire les binaires pour les environnements ciblés.

Étudions quelques exemples représentatifs d’applications multiplateformes modernes.

1. Ordinateur personnel Mac Mx

Pour créer les binaires correspondant à cette plateforme, vous devrez impérativement disposer d’un ordinateur Mac équipé d’un processeur Mx sous architecture ARM.

Si vous n’en disposez pas, vous pourrez tenter d’utiliser une machine virtuelle avec une émulation ARM fournie par QEMU, par exemple.

Vous pourrez également vous tourner vers la location d’un ordinateur Mac Mini Mx chez un hébergeur comme Scaleway...

Maintenir à jour son environnement

Il n’est pas toujours opportun de faire évoluer son environnement de développement. Cela est indispensable quand des bugs ou des failles de sécurité importants ont été corrigés par l’éditeur du compilateur ou de Qt, mais dans la plupart des cas les développeurs souhaitent conserver le plus longtemps possible un environnement stable.

Mettre à jour le compilateur ainsi que les bibliothèques système est important pour corriger des bugs et des vulnérabilités. Les mises à jour mineures de Qt peuvent être faites sans risque car elles ont pour but de corriger des bugs dans les API (par exemple version 6.1.1 vers 6.1.2). Toute autre mise à jour doit être envisagée sérieusement afin d’éviter les effets de bord sur le code (API dépréciées, comportement modifié, etc.).

Qt est livré avec un utilitaire appelé MaintenanceTool, celui-ci permet d’ajouter ou de supprimer des composants précédemment installés et surtout d’effectuer une mise à jour du système. Cet utilitaire se trouve dans le répertoire d’installation de Qt.

 Exécutez le programme MaintenanceTool.

Vous remarquerez tout de suite qu’il est pratiquement identique à l’utilitaire utilisé pour l’installation initiale. La différence principale est que vous pourrez mettre à jour des composants en plus d’en installer de nouveaux, comme par exemple une version plus récente des bibliothèques de Qt.

images/03EP15N1.png

 Choisissez l’entrée Mettre à jour des composants.

 Cliquez sur Suivant. Le programme recherche alors des mises à jour depuis le dépôt configuré...

Utiliser Qt Creator

Qt Creator est un outil très puissant et bien organisé. Il possède une organisation qui lui est propre, comme tous les environnements de développement.

1. Organisation des projets

Comme beaucoup d’EDI modernes, Qt permet de gérer des projets de développement, c’est-à-dire un ensemble de fichiers d’en-têtes, de sources et de ressources qui formeront un exécutable ou une bibliothèque. De plus, il permet de regrouper ces projets dans des ensembles appelés sessions.

Si vous travaillez sur un projet de développement qui regroupe un exécutable principal, une ou plusieurs bibliothèques et d’autres exécutables du type utilitaire, vous aurez tout intérêt à utiliser une session pour ouvrir d’un coup tous ces éléments sans avoir à charger les uns et les autres séparément.

Une session est un simple groupe qui permet d’ouvrir en même temps plusieurs projets, son équivalent dans Visual Studio est la "solution".

2. Fenêtre principale

images/03EP17N1.png

Au démarrage, la fenêtre est composée des éléments suivants :

  • Boutons d’accès aux modules de Qt (1)

  • Boutons de compilation et d’exécution (2)

  • Onglets de journaux et d’information (3)

  • Avertissements sur la disponibilité de mises à jour (4)

  • Liste des derniers projets et sessions ouverts (5)

  • Exemples et documentations (6)

a. Boutons d’accès aux modules

Nous appelons « modules Qt Creator » des parties de l’application dont le fonctionnement est spécialisé. Le premier module chargé est le module d’accueil que nous sommes en train de décrire.

Les autres modules accessibles sont les suivants :

images/03EP18N1.png

Ce module correspond à l’éditeur de codes sources. Grâce à lui vous pourrez modifier les fichiers en-têtes, sources, et ressources en mode texte.

images/03EP19N1.png

Ce module correspond au concepteur des boîtes de dialogue, fenêtres et composants graphiques.

images/03EP20N1.png

Ce module permet de déboguer l’application. Qt Creator passera automatiquement sur ce module lorsque vous lancerez un débogage.

images/03EP21N1.png

Ce module permet de régler les paramètres de compilation et d’exécution de votre projet...

Créer une application

L’EDI Qt Creator rend simple la création et le paramétrage d’un projet Qt. Grâce à plusieurs assistants, une grande partie de la création du fichier projet sera effectuée.

Dans la plupart des cas, la création d’une application à l’aide de Qt Creator a pour objectif de créer un fichier projet .pro qui permettra de compiler votre programme.

 Dans le menu Fichier, cliquez sur Nouveau fichier ou projet....

images/03EP49N1.png

Regardons dans le détail les options proposées :

  • Application (Qt) : permet de créer une application qui utilisera un compilateur C++, que ce soit pour Qt Widgets ou Qt Quick.

  • Application (Qt for Python) : permet de choisir de créer une application qui utilisera les bindings python (PySide), que ce soit pour Qt Widgets ou Qt Quick.

  • Library : permet de créer une bibliothèque C++, avec liaison statique ou dynamique.

  • Autre projet : permet de créer des widgets personnalisés pour Qt Widgets (voir le chapitre Qt Widgets - Widgets personnalisés), des projets de prototypage Qt Quick, des projets de tests unitaires ou des projets qmake complexes.

  • Non-Qt project : permet de créer des projets C ou C++ qui n’utilisent pas les bibliothèques de Qt.

  • Import project : permet de télécharger des projets depuis un gestionnaire de code source...

Création et gestion des ressources

Les fichiers de ressources permettent d’intégrer des fichiers externes dans votre exécutable. Ainsi, vous pourrez embarquer des images, icônes ou encore des sons dans vos exécutables.

La gestion de ces ressources se fait dans Qt Creator de manière très simple.

 Commencez par cliquer sur Nouveau fichier ou projet… dans le menu Fichier

images/03EP52N1.png

 Dans...