Компания Qt Company опубликовала релиз фреймворка Qt 6.4, в котором продолжена работа по стабилизации и наращиванию функциональности ветки Qt 6. В Qt 6.4 обеспечена поддержка платформ Windows 10+, macOS 10.15+, Linux (Ubuntu 20.04, CentOS 8.2, openSUSE 15.3, SUSE 15 SP2), iOS 14+, Android 6+ (API 23+), webOS, WebAssembly, INTEGRITY и QNX. Исходные тексты компонентов Qt поставляются под лицензиями LGPLv3 и GPLv2.
Основные изменения:
- Реализована полноценная поддержка платформы WebAssembly, позволяющей создавать Qt-приложения, работающие в web-браузере и переносимые между разными аппаратными платформами.
- В основной состав возвращён модуль Qt TextToSpeech, поставлявшийся в Qt 5, но не вошедший в ветку Qt 6.
- Добавлен экспериментальный модуль с реализацией стилевого оформления iOS для Qt Quick.
- Добавлен экспериментальный модуль QtHttpServer, позволяющий интегрировать в приложения функциональность HTTP-сервера, который поддерживает HTTP/1.1, TLS/HTTPS, WebSockets, обработку ошибок, маршрутизацию запросов на основе параметров в URL (QHttpServerRouter) и REST API.
- Добавлен экспериментальный модуль Qt Quick 3D Physics, предоставляющий API для симуляции физических процессов, который можно использовать вместе с Qt Quick 3D для реалистичного взаимодействия и перемещения объектов в 3D-сценах.
- В модуль Qt Quick 3D добавлена экспериментальная поддержка глобального освещения с использованием карт освещённости, позволяющих более реалистично имитировать в 3D-сцене свет от разных источников.
- Расширены возможности предоставляемых в Qt Quick типов TableView и TreeView, в которых появилась поддержка навигации при помощи клавиатуры, выделения строк и столбцов, более полного управления положением ячеек, анимацией, сворачиванием и раскрытием древовидных структур.
- В Qt Quick предложен новый тип FrameAnimation, позволяющий выполнять код синхронно с кадрами анимации.
- В виджете QQuickWidget, позволяющем создавать интерфейсы, комбинирующие элементы на базе Qt Quick и Qt Widget, реализована полная поддержка прослойки RHI (Rendering Hardware Interface), позволяющей обеспечить работу не только с использованием OpenGL, но и поверх API Vulkan, Metal и Direct 3D.
- В модуль Qt Multimedia добавлен экспериментальный бэкенд, использующий для обработки видео и звука пакет FFmpeg.
- В модуле Qt Widgets класс QFormLayout расширен средствами для построения интерфейсов для захвата структурированного пользовательского ввода.
- В QML улучшена поддержка типов значений, упрощающих передачу структурированных данных из C++ в QML.
- Расширены возможности для работы со строковыми литералами в коде - в классы QStringEncoder и QStringDecoder добавлена поддержка всех кодировок, доступных в ICU (International Components for Unicode).
- В классе QTextDocuments добавлена поддержка разметки Markdown.