Компания Qt Company опубликовала релиз фреймворка Qt 6.5, в котором продолжена работа по стабилизации и наращиванию функциональности ветки Qt 6. В Qt 6.5 обеспечена поддержка платформ Windows 10+, macOS 11+, Linux (Ubuntu 20.04, openSUSE 15.4, SUSE 15 SP4, RHEL 8.4/9.0), iOS 14+, Android 8+ (API 23+), webOS, WebAssembly, INTEGRITY и QNX. Исходные тексты компонентов Qt поставляются под лицензиями LGPLv3 и GPLv2.
Qt 6.5 получил статус LTS-выпуска, в рамках которого для пользователей коммерческой лицензии обновления будут формироваться в течение трёх лет (для остальных обновления будут публиковаться полгода до формирования очередного значительного выпуска). Поддержка прошлой LTS-ветки Qt 6.2 продлится до 30 сентября 2024 года. Ветка Qt 5.15 будет сопровождаться до мая 2025 года.
Основные изменения в Qt 6.5:
- Стабилизирован и переведён в разряд полностью поддерживаемых модуль Qt Quick 3D Physics, предоставляющий API для симуляции физических процессов, который можно использовать вместе с Qt Quick 3D для реалистичного взаимодействия и перемещения объектов в 3D-сценах. Реализация основана на движке PhysX.
- Добавлена поддержка тёмного режима оформления платформы Windows. Автоматическое применение активированного в системе тёмного оформления и настройка рамок и заголовка, если в приложении используется стиль, не меняющий палитру. В приложении настроить собственную реакцию на изменения в системной теме можно через обработку изменения свойства QStyleHints::colorScheme.
- В Qt Quick Controls стиль Material для Android приведён в соответствие с рекомендациями Material 3. Реализован полноценный стиль для iOS. Добавлены API для изменения внешнего вида (например, containerStyle для TextField или TextArea, или roundedScale для кнопок и всплывающих блоков).
- На платформе macOS в приложениях, использующих QMessageBox или QErrorMessage, обеспечен показ родных для платформы диалогов.
- Для Wayland добавлен программный интерфейс QNativeInterface::QWaylandApplication для прямого обращения к родным для Wayland объектам, которые используются во внутренних структурах Qt, а также для получения доступа к информации о последних действия пользователя, которая может быть востребована для передачи расширениям протокола Wayland. Новый программный интерфейс реализован в пространстве имён QNativeInterface, в котором также предоставляются вызовы для доступа к родным API платформ X11 и Android.
- Добавлена поддержка платформы Android 12 и несмотря на значительные изменения в данной ветке сохранена возможность создания универсальных сборок для Android, которые могут работать на устройствах с разными версиями Android, начиная с Android 8.
- Обновлён стек Boot2Qt, который может использоваться для создания загружаемых мобильных систем с окружением на базе Qt и QML. Системное окружение в Boot2Qt обновлено до платформы Yocto 4.1 (Langdale).
- Началось формирование пакетов для Debian 11, на которые распространяется коммерческая поддержка.
- Расширены возможности платформы WebAssembly, позволяющей создавать Qt-приложения, работающие в web-браузере и переносимые между разными аппаратными платформами. Приложения, собираемые для платформы WebAssembly, благодаря JIT-компиляции выполняются с близкой к нативному коду производительностью, могут использовать Qt Quick, Qt Quick 3D и доступные в Qt средства визуализации. В новой версии добавлена поддержка отрисовки видео и использования в виджетах средств для людей с ограниченными возможностями.
- Web-движок Qt WebEngine обновлён до кодовой базы Chromium 110. На платформе Linux реализована поддержка аппаратного ускорения отрисовки видео при использовании графического API Vulkan в окружениях на базе X11 и Wayland.
- Добавлен модуль Qt Quick Effects, предоставляющий готовые графические эффекты для интерфейса на базе Qt Quick. Собственные эффекты можно создавать с нуля или получать путём комбинирования уже существующих эффектов при помощи инструментария Qt Quick Effect Maker.
- В модуле Qt Quick 3D предоставлена возможность настройки уровня детализации моделей (например, для объектов, расположенных далеко от камеры, можно генерировать более простые мэши). В API SceneEnvironment реализована поддержка тумана и постепенного исчезания далёких объектов. В ExtendedSceneEnvironment предоставлены возможности для создания сложных эффектов постобработки и комбинирования таких эффектов, как глубина резкости, свечение и блики.
- Добавлен экспериментальный модуль Qt GRPC с поддержкой протоколов gRPC и Protocol Buffer, позволяющий обращаться к сервисам gRPC и выполнять сериализацию Qt-классов, используя Protobuf.
- В модуле Qt Network добавлена поддержка настройки соединений HTTP 1.
- В модуль Qt Serial Bus добавлены экспериментальные классы для работы с шиной CAN, которые могут применяться для кодирования и декодирования сообщений CAN, обработки кадров и разбора файлов DBC.
- Возрождён модуль Qt Location, предоставляющий приложениям средства для интеграции карт, навигации, пометки интересных мест (POI). Модуль поддерживает интерфейс плагинов, через который можно подключать бэкенды для работы с различными сервис-провайдерами и создавать расширения API. Модуль пока имеет статус экспериментального и поддерживает только бэкенд для карт на базе Open Street Maps.
- Расширены возможности модулей Qt Core, Qt GUI, Qt Multimedia, Qt QML, Qt Quick Compiler, Qt Widgets.
- Проведена большая работа по повышению стабильности, закрыто около 3500 отчётов об ошибках.