Хабрахабр

Новости Qt, май 2018 — декабрь 2018

Релизы 5. Очередной сборник новостей Qt, на этот раз за последние полгода с прошлой статьи. 12, реинкарнация PySide, внезапные похороны Qbs, выход Qt Design Studio и значительное улучшение условий лицензий для стартапов. 11 и 5.

ДДПВ

Интересной КПДВ я не придумал, потому вместо неё просто ДДПВ — это к нам летом в офис приходил фотограф на корпоративную фотосессию, из которой я и подрезал фотку коллеги.

В конце предыдущей статьи были размещены два голосования: за перевод поста из официального блога про портирование Qt на микроконтроллеры и за написание обзора Safe Renderer, и голосование показало, что обе статьи заслуживают публикации. Начнём с нарушенных обещаний. Сложно сказать, что именно там было рекламного (можете посмотреть английский оригинал и оценить), но в таком случае про Safe Renderer не было даже и смысла пытаться (потому что это исключительно коммерческая фича). Но в размещении микроконтроллерной статьи НЛО автору отказало: "Публикации рекламного характера вне корпоративного блога и хаба «Я пиарюсь» запрещены правилами сайта". Так что простите, если кто ждал.

Содержание на сегодня:

Новые релизы

Qt 5.11

11. 22 мая вышел Qt 5.

Не могу выделить какие-то особо значительные нововведения, кроме переработанного процесса компиляции QML, который должен существенно улучшить производительность Qt Quick приложений:

QML compiler pipeline

Также в релизе:

  • поддержка High-DPI для Qt Widgets на Windows (до этого было только в Mac OS и Linux);
  • поддержка сжатых текстур в Qt Quick;
  • превью реализации коммуникационного протокола OPC UA;
  • превью Qt for WebAssembly. Но зачем.

Qt 5.12

12 (обзор от CTO), очередной LTS релиз, который будет поддерживаться 3 года. 6 декабря вышел Qt 5.

В основном это касается движка QML и JavaScript, который теперь соответствует стандарту ECMAScript 7. Улучшена производительность.

Релиз Qt Remote Object — механизма межпроцессорного взаимодействия как на одном хосте, так и между разными хостами по сети.

Как пример — Raspberry Pi с камерой, Qt-приложение стримит GUI вместе с выводом камеры, а рендерится всё в обычном Safari на iPad: Релиз Qt Quick WebGL, он же Qt WebGL streaming — то есть возможность транслировать GUI приложения, работающего на удалённом хосте (устройстве без дисплея), и отображать его в браузере на десктопе или планшете.

Qt Quick WebGL

Если и так подразумевается работа с девайсом из браузера, то зачем городить GUI на Qt Quick и стримить его в WebGL? Очень прикольная штука, я прямо восторгом с ней поигрался, но откровенно говоря я не представляю, кто и зачем будет этим пользоваться. Странная фича, в общем. Не проще ли тогда просто запустить на девайсе нормальный веб-сервер, а GUI на клиенте будет с HTML/CSS/JS без вот этого всего?

Вот даже сравнение производительности аналога из Qt Quick Controls 1. В Qt Quick Controls 2 наконец-то добавили TableView. К сожалению, по-прежнему никаких новостей про TreeView.

Это новый модуль для обработки ввода с мыши, клавиатуры и тачскрина. Pointer Handlers вышли из статуса превью и переименовались в Input Handlers. В связи с этим в какой-то момент следует ожидать "устаревания" MouseArea.

В Qt Virtual Keyboard помимо прочего добавлены новые языки а также новый движок рукописного ввода — MyScript.

Это те же самые Yocto образы и тулчейны, только теперь в виде отдельно загружаемых и подключаемых к установщику пакетов. В Qt for Device Creation появились так называемые Qt Board Support Packages. Смысл QBSP заключается в поддержке партнёров-вендоров железа, чтобы им было удобнее создавать и распространять Boot to Qt образы для своих устройств.

Развивается поддержка Wayland.

Qt Creator

7 и 4. За полгода вышло две версии Qt Creator: 4. 8.

В то же время, "родной" QML до сих пор не в курсе последних версий модулей для импорта, из-за чего их приходится перебирать научным тыком. Из наиболее значимых нововведений — поддержка Language Server Protocol, то есть возможность расширения Qt Creator для работы с большим количеством языков программирования.

8 также должен был быть добавлен модуль телеметрии, но в этот релиз он не попал, так что ожидайте в 4. В версии 4. 9.

Qt Design Studio

Тот самый полусекретный проект:

С ним можно работать как из Qt Creator (вкладка Design), так и запустив его как самостоятельное приложение для работы с .iu файлами. Как вы знаете, в составе Qt есть прекрасный инструмент для создания GUI на Widgets — Qt Designer.

С появлением Qt Quick добавился инструмент Qt Quick Designer, который уже нельзя запустить как отдельное приложение, так как он насмерть прибит гвоздями к Qt Creator.

Также это теперь самостоятельное приложение, хотя по факту это просто покалеченная копия Qt Creator, которая запускается сразу в режиме дизайна Qt Quick (с возможностью переключения в режим редактирования QML). И вот Qt Design Studio — это тот же самый Qt Quick Designer, но с дополнительным функционалом.

Примечательно, что все эти вещи вряд ли когда-нибудь попадут обратно в Qt Quick Designer. Из нового функционала: линия времени для работы с анимациями, удобные диалоги для настройки этих анимаций и компонент live-preview для предпросмотра изменений на лету как в отдельном окне, так и на присоединённом планшете или другом устройстве.

Qt Design Studio предназначена для дизайнеров, и подразумевается, что они будут создавать в ней дизайн приложения, передавать результат (.ui.qml файлы) разработчикам, а разработчики будут работать с ними в полноценном Qt Creator.

Первым был создан плагин для Adobe Photoshop, следующим ожидается плагин для Sketch, затем Adobe XD и другие. Также ведётся разработка плагинов для существующих популярных инструментов дизайна, чтобы дизайнеры могли экспортировать свои наработки из этих инструментов в QML.

Когда в Qt были только Widgets, я с плохо скрываемым удовольствием работал в Qt Designer, это отличный инструмент для создания GUI и по сей день. Я не дизайнер, потому мне сложно оценить полезность Qt Design Studio. А так как Qt Design Studio это почти что и есть Qt Quick Designer, то лично я ей пользоваться буду вряд ли. Когда появился Qt Quick, я несколько раз пытался пользоваться Qt Quick Designer, но в итоге бросил и просто пишу QML, для меня так удобнее и быстрее. В то же время, насколько мне известно, ряд дизайнерских агентств, которые получили Qt Design Studio на "тест-драйв", отзываются о ней положительно.

Да и просто загрузить установщик не так-то просто, требуется наличие Qt Account. В плане лицензирования инструмент вроде как заявлен в Open Source (GPLv3), но в то же время вроде как для распространения результатов работы требуется коммерческая лицензия. В общем, менеджеры продукта пока ещё не совсем определились.

Qt 3D Studio

За это время вышли версии 2. Продолжается развитие Qt 3D Studio. 1 и 2. 0 (более подробный обзор), 2. 2.

Наиболее значительно изменение — переход с движка оригинальной NVIDIA DRIVE Design Studio на собственный движок на основе Qt 3D и значительное улучшение производительности.

Также был обозначен план объединения Qt 3D Studio и Qt Design Studio в единый инструмент, то есть вместо двух это будет одно приложение для работы с 2D и 3D.

Анонс Kuesa

Говоря о 3D, тут KDAB выпустили своё решение для работы с 3D — Kuesa.

Для удобства в наличии также есть приложение для предпросмотра модели и наименований компонентов, чтобы разработчик знал как к ним обращаться у себя в коде, не открывая модель в оригинальном 3D редакторе. В отличие от Qt 3D Studio, они не стали тратить ресурсы на собственный инструмент для 3D моделирования, а позволяют дизайнерам работать с их привычными инструментами (3DS Max, Blender), и далее разработчик может использовать экспортированные glTF модели в Qt.

Тут кстати будет напомнить что сам Qt 3D это тоже вклад KDAB. На мой взгляд Kuesa является конкурирующим Qt 3D Studio решением (и судя по всему, более удачным), и это досадно, потому что вместо того, чтобы параллельно заниматься одним и тем же, эти усилия можно было бы потратить на что-то более полезное (я сейчас не обязательно про KDAB).

Релиз PySide2 / Qt for Python

PySide вернулся, переименовался сначала в PySide2, а потом в скучный Qt for Python.

11, но он всё ещё не считался за полноценный, а вот буквально на днях выпустили уже официальный релиз вместе с Qt 5. Первый релиз вышел с Qt 5. 12.

Как и раньше, PySide — это возможность использовать Qt (в основном, для GUI) из Python. Вряд ли я могу рассказать здесь что-то новое. Поддержка на embedded платформах пока отсутствует, хотя и запланирована. Распространяется через PyPI, то есть в состав официального установщика Qt не входит, и устанавливается отдельно через pip.

С точки зрения коммерческого лицензирования, с PySide "всё включено" в стоимость лицензии Qt без дополнительной платы, а с PyQt надо ещё платить в Riverbank; с точки зрения Open Source, PySide доступен как под GPLv3, так и под LGPLv3, в то время как PyQt доступен только под GPLv3. Списка отличий от PyQt нет, хотя разработчики и заверяют, что PySide почти ни в чём не уступает, а скоро будет ещё и превосходить.

Дальнейшее портирование на MCU

Помимо RTEMS были опробованы FreeRTOS (которая стала выглядеть чуть получше после того как Amazon добавил туда некоторую поддержку POSIX) и uClinux, и пока вывод такой, что мы всё-таки рекомендуем именно RTEMS. Продолжается работа над портированием Qt на железо уровня микроконтроллеров.

MX RT1050. Говоря о конкретных устройствах, помимо STM32F4/F7 удалось достичь хороших результатов на NXP i.

Отказ от Qbs

Вероломно, без объявления войны, в официальном блоге было заявлено об отказе от Qbs. Топ 10 предательств в аниме!

Вкратце: разработка Qbs прекращается, хотя и будет выпущен ещё один релиз, поддержка закончится в конце 2019 года, qmake пока останется, но в перспективе (Qt 6) будет осуществлён переход на CMake как основную систему сборки.

Вот тут ещё есть комментарии на русском. Пост собрал две сотни комментариев (рекорд для нашего блога), и собрал бы больше, но комментарии к постам автоматически закрываются через две недели после публикации.

Опуская техническое обоснование решения, основное возмущение вызвал тот факт, что несколько лет сообществу твердили о том как Qbs прекрасен и какой это шаг вперёд, не говоря уже о заверениях что это будет официальная система сборки в Qt 6 и всем надо на неё переходить (и народ таки начал переходить), и тут вдруг Qbs закрывается таким стремительным домкратом.

Изменения в коммерческом лицензировании

1. Коммерческое лицензионное соглашение обновилось до версии 4. Добавился аппендикс с перечислением лицензируемого/распространяемого ПО.

Значительно улучшились условия лицензии для стартапов: во-первых, она теперь не со скидкой, а вообще бесплатная, а во-вторых, теперь доступны компоненты и из Device Creation тоже (готовые образы на основе Yocto Linux, тулчейны для кросс-компиляции и т.д.), однако для распространения продуктов-устройств рантаймы покупать всё равно потребуется (логика такая, что если есть деньги на железо, то должны найтись и на рантаймы).

Юридически это полноценная коммерческая лицензия без необходимости выполнять требования GPL/LGPL. Лицензия для стартапов выдаётся на год и потом может быть продлена ещё на год. После первого года (или двух) она превращается в обычную лицензию за полную стоимость.

У стартапных лицензий действуют следующие ограничения:

  • годовой доход компании должен быть меньше 100 000 долларов, иначе вы не квалифицируетесь как стартап;
  • получить лицензии можно максимум на 3 разработчиков;
  • техническая поддержка сильно урезана: 5 тикетов в месяц и низкий приоритет в очереди.

Кстати, не исключено, что вашу заявку на стартапную лицензию будет рассматривать как раз девушка с обложки статьи.

Другие новости

Записей выступлений пока нет, есть только короткий видео-обзор берлинского и пост от KDAB. В этом году Qt World Summit прошёл два раза: Бостоне и потом в Берлине.

Грядёт обновление иконок приложений:

Новые иконки Qt

Мне тоже. Как вам? А главное, откуда опять эта нужда в редизайне, не так давно был уже один, и довольно неплохой.

Вроде как это должно помочь компаниям оценить пользу от Qt и принять решение о приобретении коммерческой лицензии. Компания Forrester провела исследование, в котором изучила влияние Qt на бизнес, всякие там ROI показатели и прочее. Есть даже онлайн-калькулятор для подсчёта сэкономленных попугаев.

На этом с новостями пока всё, следующий выпуск будет где-нибудь в мае или как наберётся достаточно материала.

Теги
Показать больше

Похожие статьи

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть