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

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Discussion :

Petite présentation de Qt à l'usage de Pascaliens (Delphi/Lazarus)

  1. #1
    Membre habitué

    Homme Profil pro
    Développeur informatique
    Inscrit en
    décembre 2021
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : décembre 2021
    Messages : 126
    Points : 191
    Points
    191
    Par défaut Petite présentation de Qt à l'usage de Pascaliens (Delphi/Lazarus)
    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).
    Nom : Capture d’écran 2023-01-23 104915.png
Affichages : 185313
Taille : 15,7 Ko
    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
    Nom : Capture d’écran 2023-01-23 093344.png
Affichages : 2321
Taille : 115,8 Ko

    L'IDE Qt 5 sur une debian 11
    Nom : Capture d’écran 2023-01-23 100134.png
Affichages : 2317
Taille : 67,5 Ko

    L'IDE Qt 6 sur windows 10
    Nom : Capture d’écran 2023-01-23 093203.png
Affichages : 2319
Taille : 107,4 Ko

    L'installateur (sous Windows) - Page 1
    Nom : Capture d’écran 2023-01-23 092203.png
Affichages : 2308
Taille : 406,1 Ko

    L'installateur (sous Windows) - Page 2
    Nom : Capture d’écran 2023-01-23 092244.png
Affichages : 2306
Taille : 404,6 Ko

    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

  2. #2
    Membre confirmé

    Profil pro
    Inscrit en
    décembre 2013
    Messages
    367
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2013
    Messages : 367
    Points : 583
    Points
    583
    Par défaut
    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.

  3. #3
    Membre habitué

    Homme Profil pro
    Développeur informatique
    Inscrit en
    décembre 2021
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : décembre 2021
    Messages : 126
    Points : 191
    Points
    191
    Par défaut
    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

  4. #4
    Membre confirmé

    Profil pro
    Inscrit en
    décembre 2013
    Messages
    367
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2013
    Messages : 367
    Points : 583
    Points
    583
    Par défaut
    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

  5. #5
    Membre habitué

    Homme Profil pro
    Développeur informatique
    Inscrit en
    décembre 2021
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : décembre 2021
    Messages : 126
    Points : 191
    Points
    191
    Par défaut
    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

  6. #6
    Membre confirmé

    Profil pro
    Inscrit en
    décembre 2013
    Messages
    367
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2013
    Messages : 367
    Points : 583
    Points
    583
    Par défaut
    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.

  7. #7
    Membre habitué

    Homme Profil pro
    Développeur informatique
    Inscrit en
    décembre 2021
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : décembre 2021
    Messages : 126
    Points : 191
    Points
    191
    Par défaut
    Bonjour,

    effectivement très compliqué....

  8. #8
    Membre habitué Avatar de hlmhv
    Profil pro
    Inscrit en
    janvier 2004
    Messages
    207
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : Belgique

    Informations forums :
    Inscription : janvier 2004
    Messages : 207
    Points : 165
    Points
    165
    Par défaut
    Merci Gilles pour cette présentation qui tombe à pic!
    Je crois que je vais essayer QT tiens..
    Henri

Discussions similaires

  1. [Zekk19] Petite présentation
    Par Zekk19 dans le forum Présentations
    Réponses: 1
    Dernier message: 17/01/2011, 10h18
  2. [ugo881] Petite Présentation
    Par ugo881 dans le forum Présentations
    Réponses: 0
    Dernier message: 07/12/2010, 18h31
  3. Petite présentation de ROS
    Par RobotMaster dans le forum Robotique
    Réponses: 0
    Dernier message: 23/11/2010, 10h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo