Релиз фреймворка Qt 5.14 и среды разработки Qt Creator 4.11.0

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

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

  • В Qt Quick началась работа по предоставлению графического API, не зависящего от 3D API операционной системы. В Qt 5.14 предложена предварительная реализация нового движка рендеринга сцен, использующего новую прослойку RHI (Rendering Hardware Interface) для обеспечения работы приложений Qt Quick не только поверх OpenGL, как было до сих пор, но и используя Vulkan, Metal и Direct 3D 11. В настоящее время новый движок предложен в форме опции, позволяющей подготовить приложения к переходу на Qt 6, в котором RHI будет применяться для вывода графики по умолчанию.
  • Реализован модуль Qt Quick Timeline, упрощающий анимирование свойств при помощи шкалы времени и ключевых кадров. Модуль выделен из кода среды разработки Qt Design Studio, предоставляющей редактор на основе шкалы времени для создания анимации без написания кода.
  • Добавлен экспериментальный модуль Qt Quick 3D, предоставляющий унифицированный API для создания интерфейсов пользователя на базе Qt Quick, сочетающих элементы 2D и 3D графики. Новый API позволяет использовать QML для определения 3D-элементов интерфейсов без задействования формата UIP. Модуль решает такие проблемы, как большие накладные расходы при интеграции QML с контентом из Qt 3D или 3D Studio, и предоставляет возможность синхронизации анимации и преобразований на уровне отдельных кадров между 2D и 3D. В Qt Quick 3D для 2D и 3D можно использовать один runtime (Qt Quick), один макет сцены и один анимационный фреймворк, а для визуальной разработки интерфейса применять Qt Design Studio.
  • Добавлен WheelHandler, обработчик событий колеса мыши, а также событий для эмулируемого тачпадом колеса.
  • Продолжена работа по улучшению работы на экранах с высокой плотностью пикселей. В том числе добавлена возможность задания дробных коэффициентов масштабирования.
  • Добавлена возможность добавления цветовых пространств для изображений, что позволяет добиться корректной цветопередачи при выводе изображений на откалиброванных мониторах.
  • Добавлено пространство имён QColorConstants, которое на этапе компиляции позволяет сгенерировать экземпляры класса QColor с предопределённой палитрой.
  • В компоненты Qt Widgets и Qt Quick для создания текстовых редакторов добавлена поддержка чтения и записи в формате Markdown.
  • В API QCalendar реализована возможность работы с календарями, отличными от григорианского.
  • Для Android добавлена поддержка сборок, охватывающих несколько ABI, что позволяет разом компилировать приложение сразу для различных архитектур. Также добавлена поддержка формата пакетов AAB, допускающих поставку приложения для всех поддерживаемых архитектур в одном архиве.
  • Проведена оптимизация производительности модуля Qt 3D, в том числе модернизирована работа с потоками, объектами фреймбуфера и системой уведомлений. В итоге, удалось снизить нагрузку на CPU при отрисовке кадра и повысить эффективность синхронизации между выполняемыми потоками.
  • В модуль Qt Network добавлены API для настройки параметров HTTP/2 и мониторинга сетевого подключения.
  • Web-движок Qt WebEngine обновлён до состояния Chromium 77 и расширен новым API для управления жизненным циклом объекта QWebEnginePage.
  • Лицензия на компоненты Qt Wayland Compositor, Qt Application Manager и Qt PDF изменена с LGPLv3 на GPLv3, т.е. связывание с новыми выпусками данных компонентов теперь требует открытия исходных текстов программ под лицензиями, совместимыми с GPLv3, или покупки коммерческой лицензии (применение LGPLv3 допускало связывание с проприетарным кодом).

Одновременно сформирован выпуск интегрированной среды разработки Qt Creator 4.11.0, предназначенной для создания кроссплатформенных приложений с использованием библиотеки Qt. Поддерживается как разработка классических программ на языке C++, так и использование языка QML, в котором для определения сценариев используется JavaScript, а структура и параметры элементов интерфейса задаются CSS-подобными блоками.

В новой версии Qt Creator добавлена экспериментальная поддержка разработки приложений для микроконтроллеров и компиляции в WebAssembly, используя модули «Qt for MCUs» и «Qt for WebAssembly». Для систем с CMake 3.14 и более новыми версиями для настройки и разбора проектов задействован новый файловый API (/.cmake/api/). В редактор кода добавлена поддержка расширения протокола Language Server для подсветки семантики, а также упрощена настройка Language Server для языка Python. В интерфейс добавлена опция для изменения стиля пометки окончания строк. В Qt Quick Designer добавлена возможность редактирования биндингов QML.

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

© OpenNet