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 actif

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2021
    Messages
    138
    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 : 138
    Points : 207
    Points
    207
    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 : 419870
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 : 3673
Taille : 115,8 Ko

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

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

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

    L'installateur (sous Windows) - Page 2
    Nom : Capture d’écran 2023-01-23 092244.png
Affichages : 3653
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 éclairé

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

    Informations forums :
    Inscription : Décembre 2013
    Messages : 393
    Points : 685
    Points
    685
    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 actif

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2021
    Messages
    138
    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 : 138
    Points : 207
    Points
    207
    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 éclairé

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

    Informations forums :
    Inscription : Décembre 2013
    Messages : 393
    Points : 685
    Points
    685
    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 actif

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2021
    Messages
    138
    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 : 138
    Points : 207
    Points
    207
    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 éclairé

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

    Informations forums :
    Inscription : Décembre 2013
    Messages : 393
    Points : 685
    Points
    685
    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 actif

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2021
    Messages
    138
    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 : 138
    Points : 207
    Points
    207
    Par défaut
    Bonjour,

    effectivement très compliqué....

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 212
    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

  9. #9
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 88
    Points : 46
    Points
    46
    Par défaut
    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...
    Commencé sur zx81, puis excel100 enfin en pc avec. Zenith en turbo basic et pascal. Puis Delphi 2, Delphi 2006 et Delphi XE3 qui ne fonctionne plus.
    Initié à python et autres langages en apprentissage sur Lazarus dont je remercie les créateurs.

  10. #10
    Membre éclairé

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

    Informations forums :
    Inscription : Décembre 2013
    Messages : 393
    Points : 685
    Points
    685
    Par défaut
    Citation Envoyé par ROYER Voir le message
    alors faite un qt aussi simple à mettre en place et on en rediscute...
    non

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