A Qt Company lançou a versão do framework Qt 6.6, que continua o trabalho de estabilização e expansão das funcionalidades da série Qt 6. O Qt 6.6 oferece suporte às plataformas Windows 10+, macOS 11+, Linux (Ubuntu 22.04, openSUSE 15.4, SUSE 15 SP4, RHEL 8.6/9.0), iOS 14+, Android 8+ (API 23+), webOS, WebAssembly, INTEGRITY e QNX. Os códigos-fonte dos componentes Qt são fornecidos sob as licenças LGPLv3 e GPLv2.
Principais mudanças no Qt 6.6:
- O módulo Qt Quick implementou suporte experimental para layout adaptativo da interface. Para a alteração dinâmica do layout em função do tamanho da janela e a colocação automática de elementos com base na estrutura do layout atual, foi proposto a classe LayoutItemProxy, e no módulo Qt Quick Layouts há a possibilidade de usar tamanhos unificados de células para layouts que posicionam elementos em grades, linhas e colunas.

- No Qt Quick, foi adicionado suporte a modos de seleção (propriedade selectionMode) no tipo QML TableView (por exemplo, é possível gerenciar a seleção de células, linhas, colunas e conjuntos de células), foi disponibilizada a alteração da propriedade rootIndex, e no tipo QML TreeView foi ampliado o controle sobre a formatação das barras de rolagem (scroll-deceleration) no tipo QML Flickable, além da implementação de encurtamento automático de caminhos de arquivos. O acesso da QML à API de gerenciamento de permissões foi disponibilizado.
- Foi adicionado um módulo experimental Qt Graphs, que visa fornecer um módulo abrangente para a visualização de grandes coleções de dados que mudam rapidamente e para a construção de vários tipos de gráficos. O módulo está sendo desenvolvido como uma substituição universal para o antigo módulo Qt DataVisualization, baseado em OpenGL, e para o módulo Qt Charts. O módulo ainda está em desenvolvimento e atualmente está focado na reprodução da funcionalidade do Qt DataVisualization sobre o Qt Quick 3D e na utilização de um novo mecanismo de renderização (RHI, Rendering Hardware Interface), que suporta várias APIs 3D (OpenGL, Vulkan, Metal e Direct 3D).

- O módulo Qt Multimedia agora inclui a classe QWindowCapture para capturar o conteúdo de janelas individuais, complementando a classe QScreenCapture, que foi introduzida na versão anterior e limita-se à captura de toda a tela. A QWindowCapture permite obter uma lista de janelas disponíveis para captura e pode ser utilizada em aplicativos para permitir o compartilhamento de janelas. A captura de janelas e tela é suportada ao usar o backend FFmpeg em todas as plataformas, exceto em sistemas que utilizam o protocolo Wayland.
- A classe QMediaRecorder foi aprimorada com novas propriedades para gerenciar a qualidade do vídeo, a resolução e a taxa de bits.
- As capacidades dos módulos Qt GRPC e Qt Protobuf foram expandidas, permitindo acessar serviços gRPC e realizar a serialização de classes Qt usando o protocolo Protocol Buffer. No Qt GRPC, novas opções QGrpcChannelOptions e QGrpcCallOptions foram adicionadas para facilitar a configuração de canais e chamadas, bem como para limitar o tempo máximo de execução de uma chamada ou fluxo. Uma nova opção, QGrpcMetadata, foi introduzida para definir metadados pelo cliente e ler metadados retornados. servidorO Qt GRPC agora integra suporte ao tipo QML para a geração automática de classes cliente QtGRPC. O Qt Protobuf permite agora incluir alguns tipos do Qt Core e Qt GUI no esquema *.proto, além de oferecer acesso a contextos QML através das classes QProtobufMessage. O suporte para os tipos google.protobuf.Any e oneof foi adicionado.
- O módulo Qt WebEngine agora conta com uma API para acessar configurações de privacidade e segurança, permitindo desabilitar funções específicas do motor do navegador. Por exemplo, usando os atributos QWebEngineUrlScheme::FetchApiAllowed e QWebEngineSettings::DisableReadingFromCanvas, é possível desabilitar a API Fetch e a renderização de elementos Canvas, reduzindo o risco de identificação passiva. O suporte para a URL interna 'chrome://qt' também foi adicionado, a qual, ao ser aberta, exibe uma página com informações sobre a versão do motor Chromium utilizado.
- No módulo Qt Sql, foi adicionado um plugin com suporte para o banco de dados Mimer SQL, e as configurações de conexão no driver para bancos de dados MySQL e MariaDB foram aprimoradas.
- O módulo Qt PDF fornece classes para acessar links, miniaturas de páginas e páginas selecionadas.
- No Qt Quick, o tipo Font implementa uma nova API para configuração avançada da disposição de glifos (shaping) em fontes OpenType. Foi disponibilizada a utilização do módulo Qt Quick Shapes para a renderização de linhas e curvas de alta qualidade por meio de um shader fragmentado.

- Foi feito um trabalho de documentação da interface de renderização RHI (Rendering Hardware Interface), assim como a estabilização da API de baixo nível associada. O nível de manutenção da compatibilidade retroativa para o RHI agora corresponderá à API de Abstração da Plataforma Qt, permitindo o uso direto do RHI para o desenvolvimento de código de baixo nível multiplataforma que funcione com todas as pilhas gráficas populares e APIs gráficas (OpenGL, Vulkan, Metal e Direct 3D).
- O módulo Qt Quick 3D agora suporta a criação procedural de texturas e geometria baseadas em malhas poligonais a partir de QML.
- No módulo Qt TextToSpeech, tornou-se possível gerar dados PCM (Pulse-Code Modulation) para processamento posterior da fala sintetizada (anteriormente, apenas a saída direta para o dispositivo de áudio era suportada). Foram oferecidas configurações adicionais para segmentação de texto, além de uma API para busca de vozes necessárias e uma API para identificar as funções disponíveis no mecanismo.
- Foi adicionada ao conjunto de módulos ‘Qt for Python’, que fornece ferramentas para criar aplicações gráficas em Python usando Qt, a compatibilidade com operações assíncronas através de asyncio. Garantida a compatibilidade do Qt for Python com dispositivos baseados na arquitetura AArch64.
- O stack Boot2Qt foi atualizado, podendo ser utilizado para criar sistemas móveis inicializáveis com um ambiente baseado em Qt e QML. O ambiente de sistema no Boot2Qt foi atualizado para a plataforma Yocto 4.2 (Mickledore). Está em andamento o trabalho para fornecer builds prontas do Boot2Qt para placas NXP e dispositivos Renesas R-Car.
- Foi adicionada a suporte para a plataforma Android 13. Nas plataformas Windows e Linux, houve melhorias no suporte à arquitetura ARM. Juntamente com os colaboradores do projeto Debian, estão disponíveis nos repositórios padrão do distribuidor pacotes com Qt 6 para Debian 11 e Debian 12, e nos repositórios da Qt Company, pacotes com componentes comerciais do Qt 6.6 para Debian.
- Melhorias nas ferramentas de desenvolvimento para a plataforma WebAssembly permitem a criação de aplicativos Qt que funcionam em navegadores web e que são portáteis entre diferentes plataformas de hardware. Os aplicativos compilados para a plataforma WebAssembly, graças à compilação JIT, alcançam desempenho próximo ao código nativo, podendo utilizar Qt Quick, Qt Quick 3D e as ferramentas de visualização disponíveis no Qt. Na nova versão, a depuração de aplicativos para WebAssembly foi simplificada e o suporte a essa plataforma melhorado, permitindo vinculação dinâmica (aplicativos para WebAssembly agora podem ser distribuídos com bibliotecas compartilhadas e plugins do Qt).
Fonte: opennet.ru



