27.09.2020

Релиз фреймворка Qt 5.15


Представлен релиз кроссплатформенного фреймворка Qt 5.15. Исходные тексты компонентов Qt поставляются под лицензиями LGPLv3 и GPLv2. В декабре будет опубликована новая ветка Qt 6, в которой ожидаются значительные архитектурные изменения. Для сглаживания будущего перехода на ветку Qt 6 в Qt 5.15 включены предварительные реализации некоторых новшеств и добавлены предупреждения о скором прекращении поддержки функциональности, намеченной для удаления в Qt 6.

Qt 5.15 отнесён к выпускам с длительным сроком поддержки (LTS). При этом для сообщества обновления ветки 5.15 будут публиковаться только до формирования очередного значительного выпуска, т.е. примерно полгода. Расширенный LTS-цикл, подразумевающий формирование обновлений в течение трёх лет, будет ограничен пользователями с коммерческой лицензией (для обычных компаний — $5508 в год на одного разработчика, а для стартапов и малых предприятий — $499 в год). Компания Qt Company также рассматривала возможность перехода на модель распространения Qt, при которой все выпуски в течение первых 12 месяцев будут распространяться только для пользователей коммерческих лицензий. Но пока данная идея не ушла дальше обсуждения.

Основные новшества Qt 5.15:

  • Продолжена работа по созданию абстрагированного графического API, не зависящего от 3D API операционной системы. Ключевым компонентом нового графического стека Qt является движок рендеринга сцен, использующий прослойку RHI (Rendering Hardware Interface) для обеспечения работы приложений Qt Quick не только с OpenGL, но и поверх API Vulkan, Metal и Direct 3D. В 5.15 новый графический стек предложен в форме опции, имеющей статус «Technology Preview».
  • Обеспечена полная поддержка модуля Qt Quick 3D, с которого снят признак экспериментальной разработки. Qt Quick 3D предоставляет унифицированный API для создания интерфейсов пользователя на базе Qt Quick, сочетающих элементы 2D и 3D графики. Новый API позволяет использовать QML для определения 3D-элементов интерфейсов без задействования формата UIP. В Qt Quick 3D для 2D и 3D можно использовать один runtime (Qt Quick), один макет сцены и один анимационный фреймворк, а для визуальной разработки интерфейса применять Qt Design Studio. Модуль решает такие проблемы, как большие накладные расходы при интеграции QML с контентом из Qt 3D или 3D Studio, и предоставляет возможность синхронизации анимации и преобразований на уровне отдельных кадров между 2D и 3D.

    Из добавленных в Qt Quick 3D новых возможностей упоминается поддержка эффектов постпроцессинга, C++ API для управления геометрией, API для вращения, основанный на классе QQuaternion, и поддержка точечных источников света. Для оценки различных возможностей Qt Quick 3D подготовлено специальное демонстрационное приложение, показывающее как можно изменять типы и источники освещения, использовать сложные модели, манипулировать текстурами, материалами и сглаживанием. Одновременно предложен выпуск окружения для проектирования интерфейса пользователя Qt Design Studio 1.5, в котором реализована полная поддержка Qt Quick 3D.

  • В Qt QML работа была сосредоточена на подготовке к Qt 6. Реализована возможность применения в компонентах свойств с признаком ‘required’, установка которых обязательна. В утилите qmllint улучшено формирование предупреждений о возможных проблемах в QML-коде. Добавлена утилита qmlformat, упрощающая форматирование QML-кода в соответствии с рекомендациями по стилю кодирования. Обеспечена совместимость QML с редакцией Qt для микроконтроллеров.
  • В Qt Quick в элемент Image добавлена поддержка цветовых пространств. В Qt Quick Shapes добавлен новый элемент PathText. В обработчик указателя добавлено свойство cursorShape, через которое можно изменить форму курсора мыши на настольных системах. Добавлен элемент HeaderView для упрощения добавления вертикальных и горизонтальных заголовков в таблицы на основе TableView.
  • Значительно улучшена поддержка декорирования окон на стороне клиента (CSD), позволяющая приложению определить собственные элементы оформления окон и разместить произвольное содержимое в заголовке окна.
  • Стабилизирован модуль Qt Lottie, предоставляющий расширенный API для QML, позволяющий отрисовывать графику и анимацию, экспортированную в формате JSON при помощи плагина Bodymovin к пакету Adobe After Effects. Благодаря QtLottie дизайнер может подготовить анимационные эффекты в удобном для себя приложении, а разработчик напрямую подключить экспортированные файлы к интерфейсу приложений на QtQuick. QtLottie включает в себя встроенный микродвижок для выполнения анимации, обрезки, обработки слоёв и других эффектов. Движок доступен через QML-элемент LottieAnimation, которым можно управлять из QML-кода по аналогии с любыми другими элементами QtQuick.
  • Браузерный движок Qt WebEngine обновлён до кодовой базы Chromium 80 (в ветке 5.14 использовался Chromium 77, актуальной версией является Chromium 83).
  • В модуле Qt 3D улучшены средства профилирования и отладки.
  • В Qt Multimedia добавлена поддержка отрисовки в несколько поверхностей.
  • В Qt GUI операции масштабирования и преобразования изображений теперь во многих случаях выполняются в многопоточном режиме.
  • В Qt Network добавлена поддержка настраиваемых таймаутов и сессионных ярлыков в TLS 1.3 (Session Ticket, позволяют возобновить сеанс без сохранения состояния на стороне сервера).
  • Обеспечена возможность работы Qt Core, QRunnable и QThreadPool с std::function. Добавлен новый метод QFile::moveToTrash() для перемещения элементов в корзину с учётом специфики разных платформ.
  • В Qt для Android добавлена поддержка родных диалогов для открытия и сохранения файлов.

Источник: https://www.opennet.ru/opennews/art.shtml?num=53031

Добавить комментарий