Do not speak Portuguese? Translate this site with Google or Bing Translator

Qt 6 lançada com API gráfica abstraída, independente de sistema operacional

E foi lançado o Qt 6.0 com API gráfica abstraída, independente de sistema operacional. Confira as novidades desse lançamento.

Criado inicialmente pela empresa norueguesa Trolltech, Qt é um framework multiplataforma para desenvolvimento de interfaces gráficas em C++.

Com essa ferramenta é possível desenvolver aplicativos e bibliotecas uma única vez e compilá-los para diversas plataformas, sem que seja necessário alterar o código fonte.

Agora, após vários meses de desenvolvimento e várias versões de teste, a The Qt Company lançou o branch estável do Qt 6, que inclui mudanças significativas na arquitetura.

Novidades do Qt 6

Qt 6 lançada com API gráfica abstraída, independente de sistema operacional
Qt 6 lançada com API gráfica abstraída, independente de sistema operacional

A nova versão afirma ser compatível com as plataformas Windows 10, macOS 10.14+, Linux (Ubuntu 20.04+, CentOS 8.1+, OpenSuSE 15.1+), iOS 13+ e Android (API 23+).

Das principais novidades que foram mencionadas e nas quais estavam trabalhando, uma delas é a API gráfica abstraída que não depende da API 3D do sistema operacional.

Um componente chave da nova pilha de gráficos Qt é um mecanismo de renderização de cena que usa uma camada RHI (Rendering Hardware Interface) para fornecer aplicativos Qt Quick não apenas com OpenGL, mas também no topo das APIs Vulkan, Metal e Direct 3D.

Um módulo Qt Quick 3D com API foi desenvolvido para criar interfaces de usuário baseadas no Qt Quick, combinando elementos gráficos 2D e 3D. Qt Quick 3D permite que você use QML para definir elementos de interface 3D sem usar o formato UIP.

No Qt Quick 3D para 2D e 3D, você pode usar um tempo de execução (Qt Quick), layout de cena e quadro de animação e usar o Qt Design Studio para desenvolvimento de interface visual.

O módulo resolve problemas como a sobrecarga pesada de integração de QML com conteúdo Qt 3D ou 3D Studio e fornece a capacidade de sincronizar animações e transformações em nível de quadro entre 2D e 3D.

Outra novidade é a reestruturação do código base, que foi feita com a quebra em partes menores e redução do tamanho do produto base. Ferramentas de desenvolvedor e componentes personalizados agora estão disponíveis como add-ons no Qt Marketplace.

Por outro lado, podemos descobrir que um motor de design unificado e skins são incorporados para conseguir a aparência de aplicativos baseados em Qt Widgets e Qt Quick, nativos para diferentes plataformas móveis e desktop.

Qt Quick 6 adiciona suporte para macOS e estilos nativos do Windows (o suporte para estilos nativos de Material e Fusion para Android e Linux foi implementado no Qt5).

Uma implementação de estilo nativo para iOS é esperada na próxima versão significativa do Qt.

A funcionalidade de suporte de plataforma fornecida anteriormente pelos módulos QtX11Extras, QtWinExtras e QtMacExtras foi movida para as APIs específicas da plataforma disponíveis diretamente no Qt.

O CMake Toolkit é usado como sistema de construção em vez do QMake. O suporte para construir aplicativos usando QMake é mantido, mas o Qt agora é construído usando CMake.

Além disso, uma transição foi feita durante o desenvolvimento para o padrão C++ 17 (anteriormente era usado C++ 98 e com Qt 5.7 – C++ 11) e a capacidade de usar em código C++ algumas das funções oferecidas para QML e Qt Quick foi adicionada.

Isso inclui um novo sistema de propriedades para QObject e classes semelhantes.

Um mecanismo para trabalhar com links do QML foi integrado ao kernel do Qt, permitindo que você reduza a carga e o consumo de memória dos links e os torne disponíveis para todas as partes do Qt, não apenas para o Qt Quick.

Das outras mudanças que se destacam:

  • Unificação de estruturas de dados, duplicadas em QObject e QML (irá reduzir o consumo de memória e acelerar a inicialização).
  • Evite a geração de estruturas de dados em tempo de execução em favor da geração em tempo de compilação.
  • Oculte componentes internos usando propriedades e métodos privados.
  • Integração aprimorada com ferramentas de desenvolvimento para refatoração em tempo de compilação e diagnóstico de bugs.
  • Ferramentas foram adicionadas para lidar com recursos relacionados a gráficos em tempo de compilação, como a conversão de imagens PNG em texturas compactadas ou a conversão de sombreadores e malhas em binários otimizados por hardware.
  • Suporte estendido para linguagens adicionais, como Python e WebAssembly.
  • O manuseio de strings e Unicode melhorou significativamente.
  • As classes QList e QVector são mescladas, a classe de resumo resultante usa um modelo de contêiner QVector semelhante a matriz.

Finalmente, espera-se atingir a paridade com o Qt 5 no suporte a sistemas de tempo real na versão Qt 6.2.

Para mais detalhes sobre o lançamento do Qt 6, acesse o Qt.io.

O próximo lançamento significativo do Qt 6.1 é esperado em abril e do Qt 6.2 LTS em setembro de 2021.

Compartilhe:
Sobre o Edivaldo Brito

Edivaldo Brito é analista de sistemas, gestor de TI, blogueiro e também um grande fã de sistemas operacionais, banco de dados, software livre, redes, programação, dispositivos móveis e tudo mais que envolve tecnologia.