IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Petite présentation de Qt à l'usage des Pascaliens (Delphi/Lazarus)
Une comparaison critique de HTML-Dev

Le , par HTML-Dev

41PARTAGES

10  0 
Bonjour,

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 Qt Design Form est à la hauteur de ce que produit Delphi. Je préfère très largement pour le développement Desktop les systèmes d'ancrage de Lazarus. Ceux qui utilisent Delphi ne seront pas perdus. J'ai apprécié un comportement des variables % des layouts plus cohérent. On dispose évidemment d'un Inspecteur d'Objets plus minimaliste que celui de Lazarus/Delphi. Un avantage à mon avis.

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

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de mintho carmo
Membre éclairé https://www.developpez.com
Le 24/01/2023 à 17:59
Désolé, je suis pas sur de comprendre ton message correctement.

Citation Envoyé par HTML-Dev Voir le message
il n'a pas dit qu'elle était incompatible mais qu'il privilégiait l'autre licence dans ce cas précis, je suppose par souci de simplicité.
Si "l'autre licence" est la GPL, elle n'est pas compatible avec une application commerciale (ou pour être plus précis, la GPL est contaminante donc l'application doit aussi être sous licence GPL, ce qui pose généralement problème pour faire une application commerciale).

Pour résumer (et simplifier) :
- licence LGPL de Qt : compatible avec une application commerciale, si on respecte les conditions de la licence LGPL
- licence GPL de Qt : pas compatible avec une application commerciale
- licence payante de Qt : compatible avec une application commerciale

Citation Envoyé par HTML-Dev Voir le message
De plus concernant l'Open-Source, autant que je m'en souvienne, il faut faire une distinction entre les programmes compilés dynamiquement et ceux compilés statiquement avec Qt qui n'obéissent pas aux mêmes conditions de diffusion.
C'est plus complexe que ça. La licence LGPL demande (pour simplifier) que l'utilisateur puisse mettre à jour ou utiliser sa propre version de la lib utilisée. Avec une compilation dynamique, c'est simple, il suffit de remplacer les libs .dll/.so/.dynlib. Avec une compilation statique, c'est possible aussi, mais il faut fournir les binaires intermédiaires (.o) a l'utilisation pour qu'il puisse recompiler lui même l'application en statique. Ce qui ne se fait jamais en pratique.
1  0 
Avatar de mintho carmo
Membre éclairé https://www.developpez.com
Le 23/01/2023 à 16:00
Citation Envoyé par HTML-Dev Voir le message
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
Pas sur que ce point soit clair dans tes explications (voire que ce ne soit pas correct), mais il est possible d'utiliser la licence LGPL de Qt pour creer des applications commerciales. Il faut juste suivre quelques contraintes (pour simplifier ne pas modifier le code de Qt et compiler en dynamique). C'est indique dans le lien que tu donnes :

The primary open-source license is the GNU Lesser General Public License v. 3 (“LGPL”). With the LGPL license option, you can use the essential libraries and some add-on libraries of Qt. This allows for keeping your application source code closed as long as all the requirements of LGPLv3 are met.
La licence GPL impose que l'application soit aussi sous GPL, ce qui n'est pas trop compatible avec une application commerciale.

Donc pour que ce soit claire : il est possible de creer des applications payantes avec Qt sans payer Qt.
0  0 
Avatar de HTML-Dev
Membre actif https://www.developpez.com
Le 23/01/2023 à 18:14
Bonjour,

oui les licences c'est assez compliqué comme je l'ai précisé. J'ai cependant pris le temps de me documenter ce matin en me référant à une discussion récente de 2022 sur le forum de Qt, l'avant dernier post. Peut-être la réponse de SGaist, une référence de ce forum, n'est-elle pas exacte...

Comme je l'ai indiqué dans le premier point au sujet des 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.
Donc à vérifier.

Cordialement. Gilles
0  0 
Avatar de mintho carmo
Membre éclairé https://www.developpez.com
Le 23/01/2023 à 23:00
Citation Envoyé par HTML-Dev Voir le message
Peut-être la réponse de SGaist, une référence de ce forum, n'est-elle pas exacte...
C'est effectivement une erreur de sa part, la licence LGPL est compatible avec une application commerciale.

https://fr.wikipedia.org/wiki/Licenc...es_avec_la_GPL
0  0 
Avatar de HTML-Dev
Membre actif https://www.developpez.com
Le 24/01/2023 à 8:23
Bonjour,

il n'a pas dit qu'elle était incompatible mais qu'il privilégiait l'autre licence dans ce cas précis, je suppose par souci de simplicité.
De plus concernant l'Open-Source, autant que je m'en souvienne, il faut faire une distinction entre les programmes compilés dynamiquement et ceux compilés statiquement avec Qt qui n'obéissent pas aux mêmes conditions de diffusion. En tout cas, c'est noté.
Cordialement. Gilles
0  0 
Avatar de HTML-Dev
Membre actif https://www.developpez.com
Le 25/01/2023 à 9:59
Bonjour,

effectivement très compliqué....
0  0 
Avatar de hlmhv
Membre habitué https://www.developpez.com
Le 08/03/2023 à 10:38
Merci Gilles pour cette présentation qui tombe à pic!
Je crois que je vais essayer QT tiens..
Henri
0  0 
Avatar de ROYER
Membre du Club https://www.developpez.com
Le 28/01/2024 à 1:11
j'ai essayer QT sur raspberry, j'ai pu démarrer qtcréator s'installe bien, mais je n'arrive pas à créer un projet. il ne trouve pas de compilateur.

j'ai installé lazarus et ça a fonctionné du premier coup sans soucis sur raspberry.

alors faite un qt aussi simple à mettre en place et on en rediscute...
0  0 
Avatar de mintho carmo
Membre éclairé https://www.developpez.com
Le 30/01/2024 à 20:24
Citation Envoyé par ROYER Voir le message
alors faite un qt aussi simple à mettre en place et on en rediscute...
non
0  0