Компания Qt Company опубликовала релиз фреймворка Qt 6.12, в котором продолжена работа по стабилизации и наращиванию функциональности ветки Qt 6. В Qt 6.12 предоставлена поддержка платформ Windows 10+, macOS 13+, Linux (Ubuntu 22.04/24.04, openSUSE 16, SUSE 15 SP6, RHEL 9.6/10.0, Debian 11.6/12), iOS 17+, Android 9+(API 23+), webOS, WebAssembly, INTEGRITY, VxWorks, FreeRTOS и QNX. Исходный код компонентов Qt поставляется под лицензиями LGPLv3 и GPLv2.
Qt 6.12 получил статус LTS-выпуска, для которого обновления будут формироваться в течение пяти лет для обладателей коммерческой лицензии. Для некоммерческих пользователей время сопровождения составит полгода (до формирования нового значительного выпуска). Поддержка прошлой LTS-ветки Qt 6.8 продлится до октября 2029 года, а поддержка позапрошлой LTS-ветки Qt 6.5 прекращена в этом году.
Основные изменения в Qt 6.12:
- Признан готовым для широкого применения модуль Qt Canvas Painter, предоставляющий API для аппаратно ускоренной отрисовки 2D-контента и использующий шейдеры для создания сложных визуальных эффектов. Отрисовка осуществляется при помощи движка RHI (Rendering Hardware Interface), поддерживающего различные 3D API (OpenGL, Vulkan, Metal и Direct 3D). На базе Canvas Painter реализован экспериментальный элемент Canvas2D, созданный с оглядкой на HTML-спецификацию Canvas 2D Context и упрощающий использования JavaScript для отрисовки фигур.

- Добавлен экспериментальный модуль StyleKit, явно разделяющий структуру компонентов интерфейса пользователя и атрибуты стилей, что позволяет избавиться от дублирования кода при реализации светлых, тёмных и высококонтрастных тем оформления. StyleKit предоставляет единый QML API для описания стилей, позволяющий добиться единого стиля в гибридных приложениях, сочетающих классические виджеты и элементы на базе Qt Quick.

- Расширены возможности модуля Qt Graphs. Для 2D-графиков реализованы новые свойства для кастомизации меток осей и добавлена поддержка логарифмических осей. Добавлены встроенные действия для масштабирования и панорамирования. Добавлена опция для отрисовки при помощи высокопроизводительного бэкенда на базе модуля CanvasPainter, позволяющего визуализировать большие объёмы быстро меняющихся данных.
- В Qt Quick добавлены QML-типы Safe Area, Context Menu, Double Spin Box и Search Field для вывода неперекрываемого содержимого, контекстных меню, форм ввода чисел и полей отправки поисковых запросов. Расширен QML-тип FlexboxLayout, предназначенный для адаптивной раскладки элементов интерфейса в соответствии с концепцией Flexbox, применяемой в CSS для упрощения вертикального выравнивания элементов.
- В модуль Vector Image, позволяющий интегрировать в сцены Qt Quick векторные изображения для создания масштабируемых элементов интерфейса, добавлены дополнительные свойства и возможности анимации для изображений в форматах SVG и Lottie.
- Расширен класс QRangeModel, предоставляющий обвязку над QAbstractItemModel для прямого использования в элементах интерфейса на базе QML и Qt Quick любых перечисляемых типов из C++, включая std::vector, std::tuples и std::array. В новой версии встроена поддержка сортировки данных, реализованы новые свойства для контроля за перемещением в режиме «Drag & Drop», ускорен поиск через метод match(), а также предоставлены настройки для заголовков и отдельных строк/элементов.
- А модуль gRPC добавлены средства для сжатия сообщений на стороне клиента и ограничения размера входящих сообщений от сервера.
- В QML-движке реализован механизм Hot Reload, позволяющий редактировать QML-код на лету во время выполнения программы и наблюдать через qmlpreview результат без перезапуска и остановки выполнения приложения.
- Предоставлена LTS-поддержка платформы HarmonyOS, что упрощает перенос существующих Qt-приложения на смартфоны, планшеты, ПК и автомобильные информационно-развлекательные системы Huawei.
- Выполнены требования европейского закона Cyber Resilience Act (CRA), нацеленные на поддержание безопасности продукта, оперативное устранение уязвимостей на протяжении жизненного цикла и раскрытие сведений об уязвимостях и инцидентах с безопасностью. В исходном коде выделены компоненты, критически важные с точки зрения безопасности, организована публикация информации о тестировании безопасности и гарантирована интеграция актуальных версий сторонних библиотек.
НОВОСТИ В КЫРГЫЗСТАНЕ