Релиз фреймворка Qt 5.10 и среды разработки Qt Creator 4.5.0
После полугода разработки представлен релиз кроссплатформенного фреймворка Qt 5.10. Исходные тексты компонентов Qt поставляются под лицензиями LGPLv3 и GPLv2, инструменты Qt для разработчиков, такие как Qt Creator и qmake, а также некоторые модули поставляются под лицензией GPLv3.
Основные изменения:
- Добавлен плагин QPA, позволяющий транслировать интерфейс пользователя на базе Qt Quick в любой web-браузер с поддержкой WebGL;
- В Qt Quick Controls 2 добавлены два новых стиля оформления: Imagine — с компоновкой на основе готового набора изображений (можно легко изменить стиль под свои предпочтения); Fusion — платформонезависимый, обеспечивающий одинаковый внешних вид на любых системах. В обоих стилях имеется поддержка настраиваемых палитр, при помощи которых можно произвольно менять цветовую гамму стиля;
- В Qt Quick Controls 2 также представлены новые QML-типы Action, ActionGroup и MenuBar, позволяющие компоновать сложные вложенные и каскадные меню. В тип Menu добавлена поддержка подменю;
- Для Qt Quick подготовлен плагин shapes, позволяющий добавлять на сцену произвольные векторные элементы, для отрисовки которых может применяться GPU без выполнения программной растеризации. Элементы могут компоноваться из линий, дуг, квадратичных и кубических кривых, к которым, в свою очередь, может применяться заливка, градиенты и анимированные трансформации;
- В Qt Quick добавлены новый тип объектов Pointer Handler, позволяющий существенно улучшить поддержку устройств ввода в режиме мультитач. Вместо ранее доступных фиксированных обработчиков MouseArea и TouchArea, теперь можно привязывать к элементам свои обработчики различных типов событий, связанных с обработкой перемещения указателя. Можно определить собственный обработчик для каждого сценария взаимодействия, например, активирующийся при касании к экрану, нажатии кнопки мыши, касании заданным числом пальцев, действиях при удержании клавиши-модификатора;
- В Qt Quick реализована возможность прямой загрузки сжатых текстур в форматах ETC1 и ETC2, поддержка мультисэмплинга для слоёв и дополнительные свойства для обработки шрифтов;
- В Qt Qml добавлена возможность определения перечисляемых элементов (enums) и динамического обновления переводов всех строк при изменении языка;
- Улучшена поддержка OpenGL: QSurfaceFormat теперь может быть использован для запроса sRGB-совместимых фреймбуфров, а через QOpenGLExtraFunctions можно получить полный доступ к API OpenGL ES 3.2 на всех поддерживаемых платформах;
- В модуле Qt 3D, который можно рассматривать как полнофункциональный 3D-движок, добавлены новые типы узлов, обеспечена возможность создания шейдеров, представлен предварительный вариант системы скелетной анимации, реализован элемент Scene2D Qt Quick для встраивания 3D-контента в сцену Qt Quick. Проведена оптимизация производительности и снижено потребление памяти. Началась работа по созданию runtime на базе Qt 3D для работы Qt 3D Studio и унификации всех связанных с 3D программных интерфейсов и приложений;
- В Qt Core реализованы новые классы: QStringView, который концептуально напоминает std: string_view, и QRandomGenerator с реализаций высококачественного генератора псевдослучайных чисел;
- В Qt Network обеспечена поддержка библиотеки OpenSSL 1.1, реализована возможность сохранения правил HSTS (HTTP Strict Transport Security) в постоянном хранилище на базе QNetworkAccessManager и добавлена реализация протокола h2c, применяемого в HTTP/2;
- В Qt Widgets добавлена порция улучшений, таких как QWidget: createWindowContainer () для Android, поддержка QOpenGLWidget для отрисовки и захвата неэкранного контента, новое свойство tabStopDistance в QTextOption и QTextEdit, а также новый API для обработки выделения содержимого в QLineEdit;
- Представлен новый эмулятор устройств, симулирующий мультитач и работу на нескольких экранах. Функциональность эмулятора теперь может быть расширена через плагины;
- Qt WebEngine обновлён до кодовой базы Chromium 61, добавлена возможность временной остановки и возобновления загрузок, а также программного инициирования загрузок;
- Из стадии экспериментальных разработок (technology preview) выведены модуль Qt Network Authorization (с поддежкой OAuth 1 & 2) и реализация синтезатора речи для Qt Speech;
Одновременно подготовлен выпуск интегрированной среды разработки Qt Creator 4.5.0, предназначенной для создания кроссплатформенных приложений с использованием библиотеки Qt. Поддерживается как разработка классических программ на языке C++, так и использование языка QML, в котором для определения сценариев используется JavaScript, а структура и параметры элементов интерфейса задаются CSS-подобными блоками.
В новой версии Qt Creator реализован графический интерфейс для управления пакетами для Android SDK. Прекращена поддержка локального развёртывания приложений для Android и системы сборки Ant. Параметры CMake в режиме проекта теперь сгруппированы по префиксу и снабжены специализированными полями редактирования флагов и файловых путей. Улучшена обработка ситуаций со сторонним изменением конфигурации CMake (не через Qt Creator). Проведена модернизация панели навигации по файловой системе — содержимое ФС теперь выводится в древовидном виде с возможностью выбора корневого каталога из предопределённого типового списка (домашний каталог, каталог проекта, каталог с проектами, корень ФС).
© OpenNet