Компания Qt Company обяви версия 6.6 на фреймворка Qt, в която продължава работата по стабилизиране и разширяване на функционалността на версии 6. В Qt 6.6 е осигурена поддръжка за платформите 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 и QNX. Изходният код на компонентите на Qt се предоставя под лицензите LGPLv3 и GPLv2.
Основни промени в Qt 6.6:
- В модула Qt Quick е реализирана експериментална поддръжка за адаптивно оформление на интерфейса. За динамично променяне на разположението на интерфейса в зависимост от размера на прозореца и автоматично разполагане на елементите с оглед структурата на текущото оформление е предложен клас LayoutItemProxy, а в модула Qt Quick Layouts е предоставена възможност за използване на единни размери на клетките за оформления с разположение на елементите по решетка, редове и колони.

- В Qt Quick е добавена поддръжка на режими на селекция (property 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 е разрешено включването на определени типове Qt Core и Qt GUI в схемата *.proto, както и е предоставена възможност за достъп до 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).
Източник: opennet.ru



