12 октября 2023 года Qt Company представила релиз фреймворка Qt 6.6, в котором продолжена работа по стабилизации и наращиванию функциональности стабильной ветки Qt 6. В новой версии Qt обеспечена поддержка платформ Windows 10/11, macOS 11, Linux (Ubuntu 22.04, openSUSE 15.4, SUSE 15 SP4, RHEL 8.6/9.0), iOS 14, Android 8 и новее (API 26+), webOS, WebAssembly, INTEGRITY и QNX. Исходные тексты компонентов Qt опубликованы на GitHub под лицензиями LGPLv3 и GPLv2. Согласно данным OpenNET, разработчики внесли такие дополнения и основные изменения в Qt 6.6: в модуле Qt Quick реализована экспериментальная поддержка адаптивной компоновки интерфейса. Для динамического изменения раскладки интерфейса в зависимости от размера окна и автоматического размещения элементов с учётом структуры текущей раскладки предложен класс LayoutItemProxy, а в модуле Qt Quick Layouts предоставлена возможность использования единых размеров ячеек для раскладок с расположением элементов по сетке, строкам и столбцам; в Qt Quick добавлена поддержка режимов выделения (свойство selectionMode) в QML-типе TableView (например, можно управлять выделением ячеек, строк, столбцов и наборов ячеек), предоставлена возможность изменения свойства rootIndex, в QML-типе TreeView расширено управление оформлением полос прокрутки (scroll-deceleration) в QML-типе Flickable, реализовано автоматическое сокращение файловых путей. Предоставлен доступ из QML к API управления полномочиями; добавлен экспериментальный модуль Qt Graphs, нацеленный на предоставление универсального модуля для визуализации больших коллекций быстро меняющихся данных и построения различных видов графиков. Модуль развивается как универсальная замена старого модуля Qt DataVisualization, завязанного на OpenGL, и модуля Qt Charts. Модуль ещё находится в разработке и в настоящее время сосредоточен на воспроизведении функциональности Qt DataVisualization поверх Qt Quick 3D и использовании нового движка рендеринга (RHI, Rendering Hardware Interface), поддерживающего различные 3D API (OpenGL, Vulkan, Metal и Direct 3D); в модуле Qt Multimedia добавлен класс QWindowCapture для захвата содержимого отдельных окон, дополнивший появившийся в прошлом выпуске класс QScreenCapture, ограниченный возможностью захвата всего экрана. QWindowCapture позволяет получить список окон, доступных для захвата, и может применяться в приложениях для предоставления совместного доступа к окнам. Захват окон и экрана поддерживается при использовании бэкенда FFmpeg на всех платформах, кроме систем, применяющих протокол Wayland; в класс QMediaRecorder добавлены свойства для управления качеством видео, разрешением и битрейтом; расширены возможности модулей Qt GRPC и Qt Protobuf, позволяющих обращаться к сервисам gRPC и выполнять сериализацию Qt-классов, используя протокол Protocol Buffer. В Qt GRPC добавлены новые опции QGrpcChannelOptions и QGrpcCallOptions для упрощения настройки каналов и вызовов, а также для ограничения максимального времени выполнения вызова или потока. Добавлена опция QGrpcMetadata для выставления метаданных клиентом и чтения метаданных, возвращённых сервером. В Qt GRPC интегрирована поддержка QML-типа для автоматической генерации клиентских классов QtGRPC. В Qt Protobuf разрешено включение в схему *.proto некоторых типов Qt Core и Qt GUI, а также предоставлена возможность доступа к QML-контекстам через классы QProtobufMessage. Добавлена поддержка типов google.protobuf.Any и oneof; в модуль Qt WebEngine добавлен API для доступа к настройкам конфиденциальности и безопасности, который позволяет отключить отдельные возможности браузерного движка. Например, при помощи атрибутов QWebEngineUrlScheme::FetchApiAllowed и QWebEngineSettings::DisableReadingFromCanvas можно отключить API Fetch и отрисовку элементов Canvas для снижения риска пассивной идентификации. Добавлена поддержка внутреннего URL "chrome://qt", при открытии которого показывается страница с информацией об используемой версии движка Chromium; в модуле Qt Sql добавлен плагин с поддержкой СУБД Mimer SQL, расширены настройки соединения в драйвере для СУБД MySQL и MariaDB; в модуле Qt PDF предоставлены классы для доступа к ссылкам, миниатюрам страниц и выбранным страницам; в Qt Quick в типе Font реализован новый API для расширенной настройки компоновки глифов (shaping) в шрифтах OpenType. Предоставлена возможность использования модуля Qt Quick Shapes для высококачественной отрисовки линий и кривых при помощи фрагментного шейдера; проведена работа по документированию движка рендеринга RHI (Rendering Hardware Interface), а также стабилизации связанного с ним низкоуровневого API. Уровень поддержания обратной совместимости для RHI теперь будет соответствовать API Qt Platform Abstraction, что позволит напрямую использовать RHI для разработки кросс-платформенного низкоуровневого кода, работающего со всеми популярными графическими стеками и графическими API (OpenGL, Vulkan, Metal и Direct 3D); в модуль Qt Quick 3D добавлена поддержка процедурного создания из QML текстур и геометрии на основе полигональной сетки; в модуле Qt TextToSpeech появилась возможность генерации данных PCM (Pulse-Code Modulation) для дальнейшей обработки синтезированной речи (ранее поддерживался только прямой вывод на звуковое устройство). Предоставлены дополнительные настройки сегментирования текста, добавлен API для поиска необходимых голосов и API для определения доступных функций движка; в набор модулей "Qt for Python", предоставляющий средства для создания графических приложений на языке Python с использованием Qt, добавлена поддержка асинхронных операций при помощи asyncio. Обеспечена совместимость Qt for Python с устройствами на базе архитектуры AArch64; обновлён стек Boot2Qt, который может использоваться для создания загружаемых мобильных систем с окружением на базе Qt и QML. Системное окружение в Boot2Qt обновлено до платформы Yocto 4.2 (Mickledore). Ведётся работа по предоставлению готовых сборок Boot2Qt для плат NXP и устройств Renesas R-Car; добавлена поддержка платформы Android 13. На платформах Windows и Linux улучшена поддержка архитектуры ARM. Совместно с сопровождающими из проекта Debian в штатных репозиториях дистрибутива размещены пакеты с Qt 6 для Debian 11 и Debian 12, а в репозитория Qt Company — пакеты с коммерческими компонентами Qt 6.6 для Debian; улучшены средства разработки для платформы WebAssembly, позволяющие создавать Qt-приложения, работающие в веб-браузере и переносимые между разными аппаратными платформами. Приложения, собираемые для платформы WebAssembly, благодаря JIT-компиляции выполняются с близкой к нативному коду производительностью, могут использовать Qt Quick, Qt Quick 3D и доступные в Qt средства визуализации. В новой версии упрощена отладка приложений для WebAssembly и улучшено сопровождение данной платформы благодаря поддержке динамического связывания (приложения для WebAssembly теперь могут поставляться с общими библиотеками и плагинами Qt). Информационная служба Хабра