A Qt Company lançou a versão do framework Qt 6.9, que continua o trabalho de estabilização e expansão da funcionalidade da versão Qt 6. No Qt 6.9, é fornecido suporte para as plataformas Windows 10+, macOS 12+, Linux (Ubuntu 22.04/24.04, openSUSE 15.5, SUSE 15 SP5, RHEL 8.10/9.4, Debian 11.6), iOS 16+, Android 9+(API 23+), webOS, WebAssembly, INTEGRITY, VxWorks, FreeRTOS e QNX. Os códigos-fonte dos componentes Qt são fornecidos sob as licenças LGPLv3 e GPLv2. O Qt 6.9 recebeu o status de versão intermediária, cujo suporte público estará disponível por 6 meses (+ mais 6 meses para usuários comerciais).
Mudanças principais no Qt 6.9:
- O desenvolvimento do módulo Qt Graphs foi continuado, destinado à construção de gráficos 2D e 3D, assim como à visualização de grandes coleções de dados que mudam rapidamente. O módulo utiliza Qt Quick 3D e o motor de renderização RHI (Rendering Hardware Interface), que suporta várias APIs 3D (OpenGL, Vulkan, Metal e Direct 3D). Na nova versão, foi adicionada a suporte para transparência no tipo QML Surface3D, implementada a classe QSpline3DSeries para renderizar dados na forma de splines 3D, e adicionadas opções adicionais para personalizar a aparência de gráficos, eixos e rótulos. Agora é possível integrar gráficos em aplicativos baseados em Qt Quick 3D, usando a propriedade "importScene" em cenas baseadas em View3D. A configuração de parâmetros de entrada em gráficos 2D foi simplificada. O QGraphsView agora suporta o posicionamento preciso da área retangular (plotArea) para exibir gráficos.

- Foi implementada a capacidade de reconhecer códigos emoji no texto e usar fontes coloridas corretas para sua exibição. No QFontDatabase, uma nova API foi adicionada para selecionar a família de fontes para emoji. Atualmente, são suportadas fontes nos formatos CBDT e COLRv1. Se desejado, a análise de emoji pode ser desativada.


- Adicionada uma API para criar interfaces em que os elementos da interface se mesclam com o conteúdo e não distraem o usuário (o conteúdo ocupa todo o espaço da janela, sem destaque para o cabeçalho). Para expandir a área da interface do aplicativo para toda a janela, foi adicionado o sinalizador Qt.ExpandedClientAreaHint, e para destacar áreas com elementos de serviço, como cabeçalho, rodapé e menu, que não devem se sobrepor aos elementos internos da interface do aplicativo, foi implementada a propriedade "SafeArea" no Qt Quick.

- O módulo Qt SVG agora tem suporte inicial para animação CSS, que até agora é aplicável apenas às propriedades 'color', 'fill', 'stroke' e 'transform'.
- Foi realizado um trabalho para melhorar o desempenho.
- Em sistemas com CPUs híbridas, equipadas com núcleos de alto desempenho e núcleos de eficiência energética separados, o QThread agora permite passar dicas ao planejador sobre qual tipo de núcleo da CPU deve executar a thread especificada.
- Para aplicativos que utilizam QQuickPaintedItem com OpenGL, o uso do modo de renderização FramebufferObject é permitido, onde é aplicado aceleração por hardware.
- No backend RHI (Rendering Hardware Interface) para OpenGL ES, foi ativada uma extensão com suporte para renderização multissample, permitindo aumentar o desempenho do Qt Quick e Qt Quick 3D em GPUs modernas.
- No backend RHI para Direct 3D, foi adicionado um thread separado para monitorar a conclusão da varredura vertical (vblank), o que reduziu os atrasos em interfaces interativas.
- Em todos os backends RHI, exceto OpenGL, foi adicionando suporte ao mecanismo de Variable Rate Shading (VRS), que fornece suporte para renderização baseada na direção do olhar do usuário em aplicativos de realidade virtual com Quick 3D XR.
- No Qt Quick, foi introduzido um novo elemento RectangularShadow, que reduz a carga na CPU ao usar efeitos de sombreamento e iluminação na interface.
- Na classe QHeaderView, o consumo de memória foi significativamente reduzido ao desativar a alteração de tamanho e a reorganização de seções.
- No Quick 3D, foi implementada a técnica 'Weighted Blended', que permite renderizar objetos transparentes sem realizar operações de ordenação de profundidade separadas. A técnica implementada elimina a ocorrência de artefatos devido a ordenação incorreta, que ocorre quando os objetos se sobrepõem. A nova abordagem apresenta carga e consumo de memória idênticos à antiga.

- Foi adicionado o módulo Qt Network Authorization, que fornece uma API para autenticação usando os protocolos OAuth1 e OAuth2, que podem ser usados para acessar serviços online sem revelar a senha do usuário.
- O trabalho de fortalecimento da proteção do módulo Qt HTTP Server foi realizado. Em QHttpServerConfiguration, foi adicionada a capacidade de limitar o número máximo de requisições de entrada. Em QHttp2Configuration, para clientes HTTP/2, foi adicionada a compatibilidade para configuração do número máximo de fluxos simultâneos que podem ser criados.
- No Servidor de Linguagem QML, implementação servidor O LSP (Protocolo de Servidor de Linguagem) para QML garante a entrega de informações sobre a estrutura do QML, permitindo a exibição de uma representação hierárquica da estrutura do QML em editores de código e ambientes de desenvolvimento integrados.
- Um novo componente ContextMenu foi adicionado ao Qt Quick, facilitando a vinculação de menus de contexto a elementos que são abertos ao receber eventos específicos da plataforma, como um clique com o botão direito do mouse. Para os componentes TextField e TextArea, menus de contexto padrão foram adicionados.
Fonte: opennet.ru





