Релиз фреймворка Qt 5.4 и среды разработки Qt Creator 3.3.0
10 декабря 2014 года
После шести месяцев разработки представлен релиз кроссплатформенного фреймворка Qt 5.4, продолжившего развитием ветки Qt 5.x. Выпуск примечателен изменением схемы лицензирования, начиная с Qt 5.4 почти все модули распространяются под лицензией LGPLv3, в дополнение к LGPLv2.1, GPLv3 и коммерческой лицензии. Qt WebEngine, Qt Canvas3D, Qt WebView и Qt Quick Controls для Android поставляются только под LGPLv3, GPLv2 и коммерческой лицензией.
Основные новшества:
- В состав включён модуль QtWayland с реализацией компонентов для работы Qt-приложений в окружении композитного сервера Weston, развиваемого проектом Wayland;
- Интегрирован компонент Qt WebEngine, пришедший на смену Qt WebKit. Qt WebEngine позволяет задействовать браузерный движок в Qt-приложениях и отличается переходом на кодовую базу проекта Blink, в рамках которого компания Google развивает форк движка WebKit. Поддержка Qt WebKit пока сохранена для обеспечения обратной совместимости, но данная подсистема больше не развивается и в скором времени будет исключена из состава Qt. Состояние Qt WebEngine в Qt 5.4 соответствует кодовой базе Chromium 37. Благодаря обеспечению возможности прямого вывода текстур Chromium в графические сцены OpenGL в Qt Quick, движок Qt WebEngine демонстрирует прекрасную производительность вывода активного графического web-контента (например, WebGL). Наряду с предоставлением удобных кроссплатформенных API к Chromium, Qt WebEngine является полностью совместимым с графическим стеком Qt, позволяя смешивать web-контент с графическими возможностями Qt и эффектами OpenGL;
- Добавлен модуль Qt WebChannel, обеспечивающий интеграцию кода на QML/C++ с компонентами на HTML/JavaScript. В том числе Qt WebChannel может быть применён для задействования функциональности QObject в коде на JavaScript, выполняемом с использованием Qt WebKit или Qt WebEngine. Таким образом, Qt WebChannel позволяет создавать гибридные приложения, комбинирующие использование web-технологий и технологий Qt;
- Представлен экспериментальный модуль Qt WebView, предоставляющий более ограниченный API для встраивания функциональности web-браузера, основанного на штатном браузерном движке, предоставляемом текущей операционной системой. Qt WebView пока доступен для платформ iOS и Android и может применяться, когда из-за ограничений ОС нет возможности использовать Qt WebEngine или когда нет необходимости в полной функциональности Qt WebEngine;
- Экспериментальная поддержка экранов сверхвысокого разрешения (High DPI);
- Полноценная поддержка платформы WinRT. В качестве минимально поддерживаемой версии заявлен WindowsPhone 8.1, что дало возможность исключить из числа зависимостей ранее применяемый компилятор D3D и существенно упростить развёртывание приложений на устройствах. Большинство модулей Qt поддерживают работу на WinRT, что открывает двери для адаптации существующих приложений для работы на смартфонах, планшетах и ПК c интерфейсом Metro. Полноценная поддержка Windows Store Apps для WinRT и Windows Phone 8.1;
- Для Qt Quick Controls реализован новый стиль "Flat Light", предоставляющий более современное оформление для встраиваемых устройств;
- Добавлен модуль Qt Quick 2D Render для рендеринга графики Qt Quick без использования OpenGL, что позволяет использовать Qt Quick на простейших устройствах, не укомплектованных GPU, применяя техники программной растеризации или задействуя механизмы ускорения 2D-операций (DirectFB или Direct2D);
- До версии 2.0 обновлён компилятор Qt Quick Compiler, позволяющий скомпилировать QML-файлы в нативный машинный код, демонстрирующий более высокую производительность, рост которой особенно заметен на платформах, для которых не поддерживается JIT-компиляция QML, например, в iOS и WinRT;
- Новый экспериментальный модуль Qt Canvas3D, предоставляющий API для Qt Quick, подготовленный в стиле WebGL. Данный модуль удобно использовать для перевода использующих WebGL приложений на Javascript на технологии Qt Quick;
- Добавлен виджет QOpenGLWidget, который заменил собой QGLWidget и дополнил представленный в прошлом выпуске виджет QQuickWidget,
позволяющий бесшовно интегрировать части пользовательского интерфейса, созданные с использованием Qt Quick, с приложениями на базе Qt Widget. Назначение QOpenGLWidget сводится к отображению контента OpenGL в приложениях на базе Qt Widget;
- Добавлен API QQuickRenderControl, обеспечивающий эффективный рендеринг сцен Qt Quick 2 в объектах с фреймбуфером. Сформированный контент может быть использован как в штатной системе OpenGL-отрисовки Qt, так и в сторонних системах OpenGL-отрисовки. Доступна также возможность инкапсуляции существующих контекстов OpenGL в QOpenGLContext, что позволяет встраивать Qt-контент для использования в других движках рендеринга.
- Добавлены классы QOpenGLWindow для отрисовки OpenGL в QWindow и QRasterWindow для отрисовки через QPainter в QWindow;
- Обеспечена поддержка изображений с глубиной цветности в 10 битов на цветовой канал;
- Для Qt QML реализован фреймворк State Machine;
- Для платформы Windows во время запуска программ обеспечена возможность выбора движка ANGLE или OpenGL, без пересборки приложения. Поддерживается как использование opengl32.dll так и ANGLE-реализация OpenGL ES 2.0;
- В элементах Qt Quick реализована возможность использования стиля Android, при котором виджеты и элементы управления Qt ничем не отличаются от родных элементов интерфейса Android;
- В модуле Qt Bluetooth обеспечена поддержка Bluetooth-стека Bluez 5 и добавлена начальная поддержка спецификации Bluetooth Low Energy;
- Модуль QtWebEngine выделен в отдельный пакет;
- Модули Qt Location и Qt 3D не вошли в состав Qt 5.4.
Одновременно доступен новый значительный выпуск интегрированной среды разработки Qt Creator 3.3.0, предназначенной для создания кроссплатформенных приложений с использованием библиотеки Qt. Поддерживается разработка как классических программ на языке C++, так и использование языка QML, в котором для определения сценариев используется JavaScript, а структура и параметры элементов интерфейса задаются CSS-подобными блоками. Исходный код Qt Creator распространяется под лицензиями LGPLv2.1 и LGPLv3.
- Qt Creator 3.3 примечателен прекращением поддержки сборки с использованием Qt 4 (поддержка разработков проектов на Qt 4 сохранена), минимально необходимая для работы Qt Creator версия Qt 5.3.1. Из улучшений можно отметить поддержку системы сборки Gradle при разработке для платформы Android, встроенная поддержка проектов CMake, возможность использования Qt Quick Compiler для QML-проектов на основе Qmake. Расширены возможности по использованию несколько областей редактирования и открытия дополнительных окон редактирования. Области редактирования теперь можно создавать перетащив пиктограмму файла за край активной области экрана.
Открытие проектов QMake теперь производится в асинхронном режиме, так же как и операции парсинга при изменении файлов .pro и .pri. В QML Profiler обеспечена поддержка перегруппировки, показа и скрытия категория на шкале времени. Возможно прикрепление заметок к событиям, которые экспортируются вместе с данными профилирования. В QML Profiler также существенно улучшена обработка и визуализация событий отрисовки (scene graph), добавлено отображение событий ввода в отдельной категории . В Qt Quick Designer реализована возможность прямого редактирования TabViews. Для коммерческих редакций представлена экспериментальная поддержка нового режима Analyze, основанного на использовании статического анализатора кода Clang.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.