Publicouse a folla de ruta das funcións Qt 6

Lars Knoll, creador do motor KHTML, xefe de proxecto do Proxecto Qt e director técnico da Compañía Qt, contou sobre os plans para crear a próxima rama significativa do framework Qt. Unha vez que se complete a funcionalidade da rama Qt 5.14, o desenvolvemento centrarase na preparación do lanzamento de Qt 6, que se espera a finais de 2020.

Qt 6 desenvolverase co obxectivo de garantir a compatibilidade co Qt 5, pero poden xurdir problemas individuais, xa que os cambios arquitectónicos e limpezas previstos non se poderán implementar sen perder certo nivel de compatibilidade. Para suavizar a transición, está previsto que algunhas funcións de Qt 6 se inclúan de forma reducida como parte das versións Qt 5.14 e Qt 5.15 LTS. O kit de ferramentas tamén estará preparado para simplificar a migración a Qt 6.

Entre os principais obxectivos para a próxima rama significativa están axustar a funcionalidade aos requisitos de 2020, limpar a base de códigos e simplificar o mantemento do proxecto. Cambios esperados:

  • Modernización significativa de QML:
    • Soporte de escritura forte.
    • Capacidade para compilar QML en representación C++ e código máquina.
    • Facer que o soporte completo de JavaScript sexa unha opción (o uso dun motor JavaScript completo require moitos recursos, o que impide o uso de QML en equipos como microcontroladores).
    • Rexeitamento da versión en QML.
    • Unificación de estruturas de datos duplicadas en QObject e QML (reducirá o consumo de memoria e acelerará o inicio).
    • Afastándose da xeración en tempo de execución de estruturas de datos en favor da xeración en tempo de compilación.
    • Ocultar compoñentes internos mediante o uso de métodos e propiedades privadas.
    • Mellora da integración coas ferramentas de desenvolvemento para a refactorización e o diagnóstico de erros en tempo de compilación;
  • Engadindo unha nova capa abstracta, a Rendering Hardware Interface (RHI), para proporcionar un uso perfecto de varias API gráficas, incluíndo OpenGL, Vulkan, Metal e Direct 3D (anteriormente Qt era só para OpenGL). Toda a infraestrutura de renderizado existente converterase para utilizar RHI, incluíndo QPainter, Qt Quick Scenegraph e Qt3D. Tamén está previsto engadir o módulo Qt Shader Tools para admitir varias linguaxes de desenvolvemento de sombreadores e proporcionar compilación cruzada de sombreadores tanto na fase de compilación como no tempo de execución;
  • Elaboración dunha API unificada para a creación de interfaces de usuario que combinen elementos gráficos 2D e 3D. A nova API permitirache utilizar QML para definir elementos da interface 3D sen utilizar o formato UIP. A nova interface para integrar contido 3D con Qt Quick prevé resolver problemas como a elevada sobrecarga de integración de QML con contido de Qt 3D ou 3D Studio, e a imposibilidade de sincronizar animacións e transformacións a nivel de cadros entre 2D e 3D. A representación 2D e 3D aniñadas combinadas implementaranse mediante un novo motor de renderizado. Espérase unha vista previa do novo Qt Quick con soporte 3D na versión Qt 5.14;
  • Engadir ferramentas para procesar recursos relacionados cos gráficos no momento da compilación, como converter imaxes PNG en texturas comprimidas ou converter sombreadores e mallas en formatos binarios optimizados para hardware específico;
  • Incorporar un motor unificado para temas e estilos, que permite conseguir a aparencia de aplicacións baseadas en Qt Widgets e Qt Quick, nativas de diferentes plataformas móbiles e de escritorio;
  • Unificación de ferramentas para a creación dunha interface de usuario. Para evitar a duplicación de funcionalidades e a interrupción da entrega de dous produtos separados, espérase que a funcionalidade de Qt 3D Studio se integre en Qt Design Studio, moitos de cuxos subsistemas e o marco para conectar complementos están construídos na mesma base de código que Qt Creator.
    Qt Design Studio tamén planea ofrecer unha integración de alta calidade con paquetes de creación de contidos como Photoshop, Sketch, Illustrator, Maya e 3D Max. As principais linguaxes admitidas no conxunto de ferramentas de desenvolvemento unificado son C++, QML e Python. A unificación tamén significa a posibilidade de acceder ás ferramentas de deseño de interfaces de Qt Creator e proporcionar aos deseñadores de interfaces capacidades de ferramentas para desenvolvedores, por exemplo, compilar un proxecto ou probar unha aplicación nun dispositivo;

  • Decidiuse usar CMake en lugar de QMake como sistema de compilación. O soporte para a creación de aplicacións usando QMake permanecerá, pero o propio Qt construirase usando CMake. Escolleuse CMake porque este conxunto de ferramentas é moi utilizado entre os desenvolvedores de proxectos C++ e é compatible con moitos ambientes de desenvolvemento integrados. Desenvolvemento do sistema de montaxe Qbs, que afirmaba ser un substituto de QMake, rematado;
  • Transición ao estándar C++17 durante o desenvolvemento (anteriormente utilizábase C++98). Qt 6 planea implementar compatibilidade con moitas funcións modernas de C++, pero sen perder a compatibilidade con código baseado nos estándares anteriores.
  • Capacidade de usar desde C++ algunhas das funcionalidades ofrecidas para QML e Qt Quick. En particular, presentarase un novo sistema de propiedades para QObject e clases similares. Integrarase desde QML no núcleo de Qt un motor para traballar con enlaces, o que reducirá a carga e o consumo de memoria dos enlaces e faráos dispoñibles para todas as partes de Qt, e non só para Qt Quick;
  • Traballo continuo para ampliar o soporte para linguaxes adicionais como Python e WebAssembly;
  • Reestruturación dividindo en compoñentes máis pequenos e reducindo o tamaño do produto subxacente. As ferramentas para desenvolvedores e os compoñentes personalizados proporcionaranse como complementos distribuídos a través da nova tenda de catálogos. Tamén se aceptarán para a súa distribución as adicións a Qt de desenvolvedores de terceiros, tanto gratuítos como de pago.

Fonte: opennet.ru

Engadir un comentario