Qt 6.0 alpha release available

Qt Company announced about branch translation Qt 6 to the alpha testing stage. Qt 6 includes significant architectural changes and builds require a compiler that supports the C++17 standard. Release outlined as of December 1, 2020.

Key features Qt6:

  • An abstract graphics API independent of the operating system's 3D API. A key component of the new Qt graphics stack is a scene rendering engine that uses the RHI (Rendering Hardware Interface) layer to enable Qt Quick applications to work not only with OpenGL, but also on top of the Vulkan, Metal, and Direct 3D APIs.
  • Qt Quick 3D module with an API for creating user interfaces based on Qt Quick, combining 2D and 3D graphics elements. Qt Quick 3D allows you to use QML to define 3D UI elements without using the UIP format. In Qt Quick 3D, you can use one runtime (Qt Quick), one scene layout and one animation framework for 2D and 3D, and use Qt Design Studio for visual interface development. The module solves problems such as the high overhead of integrating QML with content from Qt 3D or 3D Studio, and provides the ability to synchronize animations and frame-level transformations between 2D and 3D.
  • Restructuring the codebase into smaller pieces and reducing the size of the base product. Developer tools and specialized components will be supplied as add-ons distributed through the store catalog Qt Marketplace.
  • Significant QML upgrade:
    • Strong typing support.
    • Ability to compile QML into C++ representation and native code.
    • Making full JavaScript support an option (using a full JavaScript engine requires a lot of resources, which hinders the use of QML on hardware such as microcontrollers).
    • Rejection of versioning in QML.
    • Unification of data structures duplicated in QObject and QML (will reduce memory consumption and speed up startup).
    • Moving away from generating data structures at run time in favor of generating them at compile time.
    • Hiding internal components through the use of private methods and properties.
    • Improved integration with development tools for refactoring and error diagnosis at compile time.
  • Add tools to process graphics-related assets at compile time, such as converting PNG images to compressed textures, or converting shaders and meshes to hardware-optimized binary formats.
  • Embedding a unified engine for themes and styles that allows you to achieve the appearance of applications based on Qt Widgets and Qt Quick, native to different mobile and desktop platforms.
  • It was decided to use CMake instead of QMake as the build system. Support for building applications with QMake will be retained, but Qt itself will be built using CMake. CMake was chosen because the toolkit is widely used among C++ project developers and is supported by many IDEs. Development of the Qbs build system, which claimed to be a replacement for QMake, extended community.
  • Transition during development to the C++17 standard (previously used C++98). Qt 6 plans to implement support for many modern C++ features, but without losing backwards compatibility with code based on past standards.
  • The ability to use in C++ code some of the functionality offered for QML and Qt Quick. This includes a new property system for QObject and similar classes. An engine for working with bindings (binding) will be integrated from QML into the Qt core, which will reduce the load and memory consumption for bindings and make them available to all parts of Qt, not just Qt Quick.
  • Expand support for additional languages ​​such as Python and WebAssembly.
  • Source: opennet.ru

Add a comment