Developpez.com - Rubrique Qt

Le Club des Développeurs et IT Pro

Sortie de Qt 5.12 avec trois ans de maintenance

Un moteur ECMAScript 7 pour Qt Quick et des améliorations de performance

Le 2018-12-13 04:11:16, par dourouc05, Responsable Qt & Livres
La nouvelle version avec maintenance à long terme de Qt est sortie. Qt 5.12 aura donc des mises à jour correctives pendant trois ans à compter de début décembre 2018. Cette version amène aussi bon nombre de nouvelles fonctionnalités, comme un support complet de Qt pour Python (ex-PySide 2), qui rend la presque intégralité de Qt disponible en Python.


Deux modules sortent de préversion technologique et sont désormais supportés intégralement : Qt Remote Objects pour les appels de procédure entre processus Qt, y compris avec les signaux et slots ; Qt WebGL Streaming pour l'affichage d'une interface Qt Quick dans un navigateur distant à l'aide de WebGL. Toujours côté Web, Qt pour WebAssembly atteint le stade de deuxième préversion technologique : le support de cette chaîne de compilation des applications Qt pour les navigateurs Web n'est pas encore offert, mais le module est déjà assez mature.

[h=2]Qt Quick[/h]

Le moteur JavaScript utilisé pour Qt Quick a été complètement retravaillé avec Qt 5.11, facilitant les développements futurs. Qt 5.12 apporte ces premières nouveautés, comme l'implémentation de la norme ECMAScript 7 au grand complet, y compris avec les modules (qui peuvent aussi être chargés depuis du code C++).
Le composant TableView fait son grand retour, cette fois comme composant de base (et non plus dans les Qt Quick Controls). Cette implémentation est prévue pour une très haute performance, contrairement au code précédent.

[h=2]Qt Core et Qt Network[/h]

Qt Core peut maintenant lire des fichiers CBOR (concise binary object representation), un équivalent binaire de JSON (JavaScript object notation), plus compact, avec plus de types et de flexibilité.
La classe QRegularExpression gère désormais les correspondances avec plusieurs étoiles, comme QRegExp. Cette nouvelle classe a été apportée avec Qt 5 et représente une nouvelle architecture pour les expressions régulières, avec plus d'objets immuables et moins de risques à l'exécution.
Qt Network implémente le protocole DTLS, une extension de TLS (pour la sécurité) par-dessus UDP (pour la très haute performance). Sur macOS et iOS, les protocoles ALPN (application-layer protocol negotiation) et HTTP/2 sont disponibles grâce à TransportSecurity ; les paires de clés privée-publique au format PKCS#8 sont lues par le moteur SSL de base.

[h=2]Qt GUI et Qt Widgets[/h]

Sous Windows, l'accessibilité est implémentée à travers l'API la plus récente, Windows UI Automation. L'API Windows Pointer Input Messages est mise à profit pour toute interaction, que ce soit avec une souris ou avec un écran tactile — l'implémentation est ainsi unifiée, dès Windows 8.
QGradient dispose de bien plus de dégradés par défaut, inspirés par le site WebGradients. QImage peut lire les images au format RGBA64, c'est-à-dire avec seize bits par canal, qu'il s'agisse de PNG ou de TIFF.

Source : Qt 5.12 LTS Released.
  Discussion forum
18 commentaires
  • epsilon68
    Membre expérimenté
    j'ai toujours suivi Qt de tres pres mais le prix de la license est redhibitoire (environ 500 euros / mois)
    en fait sur desktop, qt quick n'est pas encore au top (pas de l&f natif) et sur mobile pourquoi ne pas utiliser react native? je ne parle pas de flutter encore, faut voir ce que ca vaut.

    ensuite sur la mailing list de Qt, beaucoup se plaignent que des bugs P1 ne sont pas fixés. Je trouve fou qu'ils aient fait la release 5.12 en sachant qu'un bug bloquant soit dedans.

    je ne comprends pas cette orientation de livrer en previlegiant la deadline que la qualité.
  • dourouc05
    Responsable Qt & Livres
    Envoyé par epsilon68
    en fait sur desktop, qt quick n'est pas encore au top (pas de l&f natif)
    Ah bon ?

    Envoyé par epsilon68
    ensuite sur la mailing list de Qt, beaucoup se plaignent que des bugs P1 ne sont pas fixés
    Pourtant, ils ont fait une RC 2 justement à cause de problèmes bloquants trouvés dans la RC 1…
  • Matthieu76
    Membre éclairé
    Perso, je suis passé récemment à Qt 5.12.2 et Visual Studio 2019 et je n'arrive plus à build mon projet en mode release alors que cela fonctionne en mode debug pourtant j'ai cherché pendant plusieurs heures mais rien... aucun élément de réponse. J'ai l'impression que cela viens soit de QtCharts que je viens d'implémenter ou alors des dll du build msvc2017 mais même en recompilant sous Visual Studio 2017 cela ne fonctionne plus.
  • aureyoboss
    Membre à l'essai
    Bonjour,

    Donc en version 5.12.3, pour que l'OpenSSL fonctionne (compilation pour Windows), il fallait ajouter les fichiers dans la racine du projet x32 :
    - libeay32.dll ;
    - ssleay32.dll ;
    - openssl.exe.

    Avec la nouvelles version 5.12.4, est-ce bien ces fichiers qu'il faut à la place des anciens ?
    - libcrypto-1_1.dll ;
    - libssl-1_1.dll ;
    - openssl.exe.

    Merci.
    Bonne soirée.
  • dourouc05
    Responsable Qt & Livres
    A priori, ces deux DLL devraient suffire (je ne vois pas pourquoi Qt aurait besoin du fichier exécutable).