
dans une discussion sur le forum Delphi, j'ai comparé les capacités concernant les "Grids" de FMX avec celles de Qt. Je lis régulièrement des inexactitudes concernant notamment les coûts comparés. Je me permets donc de ce forum dédié pour présenter incomplètement voire maladroitement ce framework.
Licences :
- Avec Qt, la lecture des licences est assez compliquée et je pense que même en y faisant attention, on n'est pas dans le temps à l'abri d'une mauvaise surprise. Elles ont été et sont fluctuantes, aussi une veille assidue est-elle nécessaire à ce niveau.
- On peut utiliser Qt sous licences Open-Source comme l'indique cette page du site qt.io[/URL]... et plus exhaustivement du site... Enfin plus exactement, on choisira comme licence Qt open source, soit GPL si le programme est commercial car on peut effectivement le commercialiser avec de fortes contraintes, soit LGPL s'il n'est pas commercial
- On peut l'utiliser sous licences commerciales à des prix disons "conséquents". Mais ce qu'on oublie de préciser c'est qu'il existe une licence dénommée "Small Business". Un maximum de 4 licences sur un même site tant que le CA "limite" n'est pas atteint.
- Il existe aussi une licence "Education".
Famework :
- Il faut savoir que le framework Qt est directement installable sous Windows, Linux et mac OS comme Lazarus. C'est pour moi, très plaisant. Adieu la cross-compilation pour du développement Desktop. Bonjour, l'immédiate visualisation du résultat, du debugger, sur la plateforme "cible". Il faut s'inscrire sur le site de Qt car lors de l'installation une adresse mail et un mot de passe vous sont demandés. Ces renseignements vous permettent ensuite par exemple de vous connecter au forum officiel.
- Ce framework comprend notamment les bibliothèques Qt qu'il vous sera nécessaire de distribuer. Par défaut, Qt construit ses projets par linkage dynamique des librairies, librairies qu'il faut distribuer. On peut utiliser le "Static Linking" mais il faut recompiler totalement Qt. C'est une opération pénible et lente. Mais par exemple, comme sous Delphi et Lazarus avec Unidac, vous pouvez être capable de ne plus distribuer des librairies tierces comme celle de mariaDB. En multi OS, c'est un gros soucis de moins lors de la distribution de vos projets. Cela présente également d'autres contraintes.
- Sous Windows, on peut utiliser 2 compilateurs différents : MinGW ou MSVC. Désormais, on utilise maintenant plutôt cMake que Qmake (qui est cependant encore disponible). On peut installer plusieurs versions de Qt sur une même machine, même des anciennes. Il y a un module de compatibilité avec Qt 5 installable sous Qt 6 [il est proposé à l'installation]. Le langage évolue et il est parfois plus "rapide" de r"utiliser directement des codes Qt 5 dans Qt 6.
IDE: Qt Creator - Qt Design Form (le designer)
QtCreator et Qt Design Form font partie du framework Qt. J'utilise l"éditeur du premier pour saisir mes lignes de codes, debugger, ... La complétion est efficace. Le signalement d'erreur tout autant. Vous pouvez choisir à la demande une version Debug ou Release (entre aiutres).
Le code :
C'est du C++ pas du Pascal. Très différent mais pas désagréable. J'ai appris avec Qt 4. La curiosité a été l'apprentissage des Signals/Slots. La programmation est asynchrone. Elle a évolué un peu depuis Qt 5 (et donc Qt 6). Ce que j'apprécie particulièrement c'est la très pratique promotion de widgets. Je qualifie le code "disponible" de généraliste et ouvert. J'ai intégré du HTML dans mes cellules de "Grid" sous Qt en utilisant simplement la promotion de widgets existants. Je n'y suis parvenu ni en Lazarus, ni en Delphi.
Portabilité :
On peut différencier le code comme pour Lazarus et Delphi selon les OS. Il faut porter une attention particulière au rendu, aux styles des objets graphiques. Contrairement à Lazarus, mais comme Firemonkey, Qt n'utilise pas directement les objets graphiques des OS (avec des wrappers) mais sa propre "couche" graphique. Donc, en cas de ciblage d'OS différents, voire même de distributions différentes (une mint ne ressemble pas graphiquement à une debian), il faut porter une attention particulière au rendu, aux "styles" des objets graphiques.
Quelques écrans :
Le designer
L'IDE Qt 5 sur une debian 11
L'IDE Qt 6 sur windows 10
L'installateur (sous Windows) - Page 1
L'installateur (sous Windows) - Page 2
En conclusion, on peut découvrir Qt sur les 3 OS (Windows, Linux, mac OS) gratuitement. En cas de diffusion des projets réalisés, il faut étudier et choisir sa licence avec beaucoup de soins et Qt propose des solutions progressives. Je n'ai pas ciblé suffisamment d'OS "mobiles" pour formuler un avis. Qt a été la seule solution Desktop qui m'a permis d'intégrer (de saisir, d'afficher) du HTML dans des "Grids", sans concession, exactement comme je le souhaitais... et m'a permis -comme le vieux Delphi 7 en son temps- de réaliser mes projets sans avoir à les adapter fonctionnellement à cause de complexités de programmation ou d'absence des éléments nécessaires à la réalisation de mes besoins. J'ai pu également exporter en pdf le contenu de mes Grids -sans concession (genre "miniHTML" imposé)- et les imprimer avec un produit compagnon de Qt, équivalent de LazReport ou FastReport, NCReport, dont les versions d'essais sont disponibles pour Qt 5 principalement.
A la retraite, je ne code plus que pour mon plaisir. Mais je dois avouer que, même si je regrette d'avoir rencontré Qt bien tardivement, je le trouve toujours aussi "séduisant".
Cordialement. Gilles