Version alpha de Qt 6.0 disponible

Société Qt annoncé le à propos de la traduction du fil Qt 6 à l'étape de test alpha. Qt 6 inclut des changements architecturaux importants et nécessite un compilateur prenant en charge le standard C++17 pour être construit. Libérer décrit à compter du 1er décembre 2020.

Clé caractéristiques Qt 6 :

  • Une API graphique abstraite indépendante de l'API 3D du système d'exploitation. Un composant clé de la nouvelle pile graphique Qt est le moteur de rendu de scène, qui utilise la couche RHI (Rendering Hardware Interface) pour alimenter les applications Qt Quick non seulement avec OpenGL, mais également au-dessus des API Vulkan, Metal et Direct 3D.
  • Module Qt Quick 3D avec API pour créer des interfaces utilisateur basées sur Qt Quick, combinant des éléments graphiques 2D et 3D. Qt Quick 3D vous permet d'utiliser QML pour définir des éléments d'interface 3D sans utiliser le format UIP. Dans Qt Quick 3D, vous pouvez utiliser un runtime (Qt Quick), une mise en page de scène et un framework d'animation pour la 2D et la 3D, et utiliser Qt Design Studio pour le développement d'interfaces visuelles. Le module résout des problèmes tels qu'une surcharge importante lors de l'intégration de QML avec du contenu de Qt 3D ou 3D Studio, et offre la possibilité de synchroniser des animations et des transformations au niveau de l'image entre la 2D et la 3D.
  • Restructurer la base de code en composants plus petits et réduire la taille du produit de base. Les outils de développement et les composants spécialisés seront fournis sous forme de modules complémentaires distribués via la boutique de catalogues. Marché Qt.
  • Modernisation significative de QML :
    • Forte prise en charge de la frappe.
    • Capacité à compiler QML en représentation C++ et en code machine.
    • Rendre la prise en charge complète de JavaScript une option (l'utilisation d'un moteur JavaScript complet nécessite beaucoup de ressources, ce qui empêche l'utilisation de QML sur des équipements tels que les microcontrôleurs).
    • Refus du versionnage en QML.
    • Unification des structures de données dupliquées dans QObject et QML (réduira la consommation de mémoire et accélérera le démarrage).
    • S'éloigner de la génération de structures de données au moment de l'exécution au profit de la génération au moment de la compilation.
    • Masquage des composants internes grâce à l’utilisation de méthodes et de propriétés privées.
    • Intégration améliorée avec les outils de développement pour la refactorisation et le diagnostic des erreurs au moment de la compilation.
  • Ajout d'outils pour traiter les actifs liés aux graphiques au moment de la compilation, tels que la conversion d'images PNG en textures compressées ou la conversion de shaders et de maillages en formats binaires optimisés pour un matériel spécifique.
  • Intégration d'un moteur unifié pour les thèmes et les styles, vous permettant d'obtenir l'apparence d'applications basées sur Qt Widgets et Qt Quick, natives sur différentes plates-formes mobiles et de bureau.
  • Il a été décidé d'utiliser CMake au lieu de QMake comme système de construction. La prise en charge de la création d'applications à l'aide de QMake restera, mais Qt lui-même sera construit à l'aide de CMake. CMake a été choisi car cette boîte à outils est largement utilisée par les développeurs de projets C++ et est prise en charge dans de nombreux environnements de développement intégrés. Développement du système d'assemblage Qbs, qui prétendait remplacer QMake, étendu communauté.
  • Transition vers le standard C++17 pendant le développement (auparavant C++98 était utilisé). Qt 6 prévoit d'implémenter la prise en charge de nombreuses fonctionnalités C++ modernes, mais sans perdre la compatibilité ascendante avec le code basé sur les normes antérieures.
  • La possibilité d'utiliser certaines des fonctionnalités offertes pour QML et Qt Quick dans le code C++. L'inclusion d'un nouveau système de propriétés pour QObject et les classes similaires sera présentée. À partir de QML, un moteur permettant de travailler avec les liaisons sera intégré au noyau Qt, ce qui réduira la charge et la consommation de mémoire pour les liaisons et les rendra disponibles pour toutes les parties de Qt, et pas seulement pour Qt Quick.
  • Prise en charge étendue de langages supplémentaires tels que Python et WebAssembly.
  • Source: opennet.ru

Ajouter un commentaire