LINUX.ORG.RU

Релиз Qt 5.7.0 и Qt Creator 4.0.2

 ,


2

4

Сотрудник The Qt Company Ларс Кнолл (Lars Knoll) объявил о выходе новой версии фреймворка Qt 5.7.0 и интегрированной среды разработки Qt Creator 4.0.2, предназначенной для создания кроссплатформенных приложений.

Изменение политики лицензирования и открытие кода коммерческих компонентов
Фреймворк Qt уже давно разрабатывается как свободное программное обеспечение с открытым исходным кодом и The Qt Company полностью поддерживают этот метод разработки и взаимодействия с сообществом. Юридическое соглашение с KDE Free Qt Foundation гарантирует, что фреймворк Qt будет и далее оставаться свободным программным обеспечением.

В Qt 5.7 было немного подкорректировано лицензирование Open Source-версии фреймворка, чтобы привести его в соответствие с современной философией движения свободного программного обеспечения. Начиная с этой версии и далее, Qt будет доступен под двумя основными лицензиями: LGPLv3 (и GPLv2) для почти всех библиотек, входящих во фреймворк, и GPLv3 для различных инструментов, таких как, например, Qt Creator.

Изменение лицензии позволило унифицировать состав Qt: теперь Open Source-версия фреймворка и коммерческая версия одинаковы в наполнении. Начиная с Qt 5.7, оба пакета поставляются с идентичным содержанием. Это значит, что все ранее закрытые компоненты коммерческой версии доступны теперь в Open Source под GPLv3:

Исключением является лишь Qt Quick Compiler: разработчики сообщили, что пока над ним ещё ведутся работы, и, скорее всего, он будет доступен под свободной лицензией в Qt 5.8, выход которого ожидается в октябре этого года.

Подробнее про политику лицензирования можно прочитать по этим ссылкам: Licensing Pages, Licensing FAQ, Пост в блоге qt.io.

C++11
Ранее вместе с Qt можно было использовать C++11 для написания приложений, но сам фреймворк при этом не использовал современные возможности C++ в угоду совместимости и переносимости. Теперь, с релизом LTS версии Qt 5.6 (поддержка которого будет осуществляться в течении трёх лет), разработчики начнут актуализировать кодовую базу Qt 5.7 в соответствии с современным стандартом C++.

Таким образом, с Qt 5.7 и далее будет требоваться компилятор, совместимый со стандартом C++11. Это позволит использовать внутри Qt такие полезные возможности, как константные выражения, move semantics, range-for и auto. Работа над этим уже идёт полным ходом и будет продолжаться в следующих версиях.

Qt 3D
Модуль Qt 3D, предварительно доступный для ознакомления в двух прошлых выпусках фреймворка, теперь достиг стабильного состояния и был добавлен в релиз. Qt 3D является дополнением библиотек Qt для работы с трёхмерной графикой (Qt OpenGL, Qt Canvas 3D и Qt Data Visualization) и позволяет создавать трёхмерные графические интерфейсы пользователя. Также фреймфорк позволяет работать с позиционированным звуком и физической моделью 3D-сцены. Qt 3D предоставляет в использование 3D-движок с API, доступным из C++ и QML, что позволяет без труда вставлять и обрабатывать 3D-контекст в Qt-приложениях. Созданием архитектуры и разработкой Qt 3D в основном занимался партнёр The Qt Company — KDAB. Получить более подробную информацию по Qt 3D можно в официальном блоге qt.io.

Qt Quick Controls 2
В Qt 5.7 вошла новая версия элементов пользовательского интерфейса, предназначенных для использования на мобильных и встраиваемых устройствах вместе с технологиями Qt Quick и QML. Как заверяют разработчики, Qt Quick Controls 2 был полностью реализован с нуля и стал намного производительнее и экономнее, чем Qt Quick Controls 1, который был изначально ориентирован для создания десктопных приложений и имел избыточную функциональность, неприемлемую для слабых устройств. Qt Quick Controls 1 по-прежнему доступен в Qt 5.7 и его можно и дальше использовать для разработки десктопных приложений, более того, Qt Quick Layouts отлично работает с обоими наборами элементов управления.

Qt Quick Controls 2 позволяет создать собственный набор элементов управления благодаря гибкой системе пользовательских стилей. Кроме того, Qt Quick Controls 2 содержит три предустановленных стиля, доступных на всех поддерживаемых платформах:

  • Default — простой и минимальный стиль, который предлагает максимальную производительность;
  • Material — стиль, основанный на рекомендациях руководства Google Material Design Guidelines;
  • Universal — стиль, основанный на руководстве Microsoft Universal Design.

Дополнительную информацию можно получить в официальном блоге qt.io.

Новая функциональность в существующих модулях
Огромное количество изменений вошло в существующие библиотеки Qt, основные из них:

  • Qt Core
    • Использование poll() вместо select() в цикле событий позволяет работать с большим количеством файловых дескрипторов;
    • Qt теперь использует std::atomic для атомарных классов.
  • Qt Gui
    • Оптимизации NEON для масштабирования изображений;
    • Оптимизация обёрток для функций OpenGL.
  • Qt QML и Quick
    • Поддержка JIT для WinRT и 64-битных ARM-ов в Qt QML, улучшающая производительность;
    • Отладчик теперь позволяет работать с несколькими экземплярами QJSEngine одновременно;
    • Улучшена интеграция профилировщика и анализатора.
  • Qt WebEngine
    • Qt WebEngine теперь базируется на Chromium 49 и может печатать в PDF;
    • Поддержка DRM-защищённого видео в HTML5.
  • Qt NFC
    • Поддержка Android OS.

Посмотреть все вошедшие изменения в релиз можно здесь, а с известными ошибками ознакомиться можно здесь.

Qt для встраиваемых устройств
В Qt 5.7 «из коробки» поддерживается следующее оборудование:

  • The NVIDIA DRIVE CX boards (Tegra X1, 64-битный ARM);
  • The Rasberry Pi 3 (32-битный режим).
  • Устройства на i.MX7 (без GPU, используется Linux framebuffer и программный рендерер Qt Quick).

В Microsoft Windows теперь возможно разрабатывать приложения для встраиваемых систем на Linux. Помимо этого, Qt 5.7 больше не будет поддерживать MS Windows Embedded. Заявлена полная поддержка QNX, включая предустановленные пакеты. Узнать больше об использовании Qt 5.7 для встраиваемых устройств можно в официальном блоге qt.io.

Qt Creator 4.0
Qt 5.7 поставляется в комплекте с Qt Creator 4.0.2, в котором реализована поддержка новых элементов пользовательского интерфейса Qt Quick Controls 2 и улучшена работа с инструментарием QML и компилятором Clang/LLVM. Подробнее можно посмотреть на видео. Список вошедших изменений в Qt Creator 4.0.2 можно посмотреть здесь.

Модули, представленные для ознакомления
Qt 5.7.0 содержит несколько новых модулей, представленных для ознакомления, которые впоследствии могут войти в релиз:

  • Qt Wayland Compositor — на основе этого модуля можно легко создать собственный композитор Wayland, что будет полезно для встраиваемых устройств. Модуль поддерживает как QML, так и C++ API, подробнее о нём можно почитать здесь;
  • Qt SCXML — совершенно новый модуль, для интеграции в Qt конечных автоматов в общем виде на основе диаграмм состояний Харела. Он опирается на фреймворк Qt StateMachine и позволяет загружать различные типы конечных автоматов;
  • Qt Gamepad — позволяет взаимодействовать с игровыми устройствами на Windows, Linux, Android и iOS из QML и C++;
  • Механизм обновления Qt Over-the-Air (OTA) для встраиваемых устройств, является важнейшей технологией в IoT, подробнее о его внедрении можно почитать здесь;
  • Модуль Qt SerialBus теперь имеет поддержку CAN и Modbus.

Скачать подготовленные сборки Qt 5.7.0 и Qt Creator 4.0.2 можно с официального сайта www.qt.io/download.

>>> Анонс Qt 5.7.0 и Qt Creator 4.0.2

★★★★★

Проверено: Falcon-peregrinus ()
Последнее исправление: DeadEye (всего исправлений: 5)

Здорово!

anonymous
()
Ответ на: комментарий от anonymous

Это которая префиксы из своей же прошки не умеет подсвечивать? Или которая минуту реконпеляет десяток исходников? Или которая не видит своих же изменений и упорно пытается линковать старые объектники?

А то не пойму, про что ты :D

arturpub ★★
()

Хороший выпуск. Сразу видно, кто самый лучший фреймворк для разработки.

Gamebot
()

Qt 5.7 поставляется в комплекте с Qt Creator 4.0.2

Как-то странно. Что есть ссылка на архив Qt Creator, внутри которого укомплектован Qt?

gag ★★★★★
()

Хочу в KDE что-нибудь на Qt 3D.

Deleted
()
Ответ на: комментарий от arturpub

Или которая минуту реконпеляет десяток исходников?

внезапно: рекомпиляет исходники компилятор, вызывается он с помощью make, make передать ключ -j, тогда он будет задействовать больше одного ядра

Или которая не видит своих же изменений и упорно пытается линковать старые объектники?

внезапно: сборка идет с помощью make, перед сборкой нужно сначала все сохранить

вообще уровень рукожопия некоторых критиков просто поражает

dt1 ★★
()
Ответ на: комментарий от gag

Ведь этот moc - одно из главных препятствий на пути быстрой пересборки.

Проблемы по ссылке из-за automoc, который давно пора выпилить из CMake. Выкинуть moc и добавить шаблонов — спорная прибавка в скорости сборки.

Dendy ★★★★★
()

поддержка которого будет осуществляться в течении трёх лет

в течение

Интересно читать новость про Qt после недавнего поста про Gtk 4.0.

ostin ★★★★★
()
Ответ на: комментарий от dt1

CopperSpice - упоротые идиоты, хотя бы потому, что для для сборки используют autotools

Это переход на личности, а не аргументы. Так что не в счёт. Да и autotools - это стандарт, а остальные системы имеют статус альтернативы.

а вот тут подробно написано

Спасибо за ссылку, почитаю.

gag ★★★★★
()
Ответ на: комментарий от fluorite

Qt code with moc compiles faster than CopperSpice code

Интересненько. Спасибо за ссылку.

Но что получается: теперь каждый C++ проект может перейти на свой собственный препроцессор для ускорения? И для пересборки придётся дёргать все эти программы. Жутко.

gag ★★★★★
()
Ответ на: комментарий от dt1

Рукожопие — это когда перед сборкой нет автосохранения. А минута — это уже с -j, не надо всех считать идиотами.

Я уже не говорю про отдельную популярную кнопку «просто запуск», потому что дождаться запуска под отладчиком просто нереально. Икскод *по сравнению с этим* да просто божественен.

arturpub ★★
()
Ответ на: комментарий от gag

autotools - это стандарт

Если вы считаете autotools стандартом, скорее всего ваш кругозор как разработчика сильно ограничен.

Dendy ★★★★★
()
Ответ на: комментарий от gag

Да и autotools - это стандарт, а остальные системы имеют статус альтернативы.

Этот «стандарт» не поддерживает одну из основных целевых платформ Qt.

Begemoth ★★★★★
()
Ответ на: комментарий от Manhunt

Ну, мне отсутствие /dev/eth0 тоже кажется абсурдным. И то, что я не могу открывать и читать/писать сокет как файл тоже. И тем не менее - это стандарт и не смущает.

gag ★★★★★
()
Ответ на: комментарий от Dendy

Почему ограничен? На каждый стандарт находятся свои расширения и, как я уже сказал, альтернативы.

gag ★★★★★
()
Ответ на: комментарий от arturpub

Рукожопие — это когда перед сборкой нет автосохранения.

В Qt Creator оно есть.

Я уже не говорю про отдельную популярную кнопку «просто запуск»

CTRL+R, даже кнопка есть.

Да и вообще, все проблемы из-за QMake, переход на CMake + Ninja решает все проблемы со скоростью сборки.

Dendy ★★★★★
()

А почему в тексте новости нету этого:

Deprecated Modules

The following modules are part of Qt 5.6 release, but deprecated and considered for removal in subsequent releases of Qt:

Qt Script

Removed Modules

With Qt 5.7 the following modules are no longer part of the final release packages:

Qt Enginio

anonymous
()
Ответ на: комментарий от gag

На каждый стандарт находятся свои расширения и, как я уже сказал, альтернативы.

О каком стандарте может быть речь, если autotools работает исключительно на юниксах. Это может быть стандарт только в узком кругу линуксоидов без претензии на кроссплатформенность в принципе.

Dendy ★★★★★
()
Ответ на: комментарий от gag

Достаточно того, что нужно 100500GB ОЗУ, чтобы его собрать. А значит ненужно.

RazrFalcon ★★★★★
()
Ответ на: комментарий от anonymous

А почему в тексте новости нету этого:

Потому-что Qt Script deprecated уже очень давно.

anonymous
()
Ответ на: комментарий от gag

Как-то странно. Что есть ссылка на архив Qt Creator, внутри которого укомплектован Qt?

Наоборот, в составе Qt есть Qt Creator.

anonymous
()
Ответ на: комментарий от Dendy

Под виндой можно пользоваться в MinGW. MacOS - Unix, можно. BSD - почти Unix, думаю, тоже можно. Неплохая кроссплатформенность. А где нельзя?

P.S. Да, в Plan 9 нельзя. Но весь тот софт там и так не пойдёт, к сожалению.

gag ★★★★★
()
Ответ на: комментарий от Dendy

MSYS2, который базируется на Cygwin. Но собирать можно приложения, которые могут работать без MSYS2/Cygwin.

Да и винда уже начала тянуть вообще весь консольный GNU/Linux-стек, так что GPL Cygwin'у придётся нелегко теперь.

gag ★★★★★
()

Ларс Кнолл (Lars Knoll)

Может, все-таки, «Ларс Нолл»?

все ранее закрытые компоненты коммерческой версии доступны теперь в Open Source

Outstanding!

Indexator ★★★
()
Последнее исправление: Indexator (всего исправлений: 1)
Ответ на: комментарий от gag

И как анализировать кернел крэш дамп винды с таким приложением, собранным mingw.

anonymous
()
Ответ на: комментарий от Dendy

Вы хотели сказать Cygwin?

В том то и дело что нет, в mingw.

anonymous
()

Это значит, что все ранее закрытые компоненты коммерческой версии доступны теперь в Open Source под GPLv3

Означает ли это, что проприетарщина, используящая LGPL Qt, не может пользоваться GPL плагинами типа виртуальной клавиатуры? Как Столманн расценивает эту ситуацию?

former_anonymous ★★★
()
Ответ на: комментарий от former_anonymous

На полэкрана

А виндовая osk типо нет.

anonymous
()
Ответ на: комментарий от Dendy

В Qt Creator оно есть.

Я только сегодня вычислял undefined reference, потому что объявление с extern «C» не подтянулось, потому что путь к хидеру был неверный. После ребилда он об этом снисходительно упомянул, до него талдычил свое. Тут дело может и не в автосейве быть, но прыгать с бубном вокруг этого поделия мне не досуг.

CTRL+R, даже кнопка есть.

Я об этом и говорю, все запускают без отладчика, потому что запуская с ним уснуть можно. В итоге воркфлоу в жопе.

все проблемы из-за QMake, переход на CMake + Ninja решает все проблемы со скоростью сборки.

Вот это спасибо, поковыряю.

arturpub ★★
()
Ответ на: комментарий от former_anonymous

Qt Virtual Keyboard

которая открывается на полэкрана, да уж :) Специальный релиз для слепых пользователей.

Андроидная клавиатура тоже на пол экрана открывается.

Dendy ★★★★★
()
Ответ на: комментарий от anonymous

autotools - это стандарт

Осталось только выяснить стандарт чего именно.

Некрофилии, вестимо.

slackwarrior ★★★★★
()
Ответ на: комментарий от former_anonymous

Это значит, что проприетарщики должны будут платить за использование GPL-плагинов, как и раньше. А вот открытые проекты (под GPLv3 only, правда) могут использовать свободно.

Qt - торт! Хороший релиз

ncuxer
()
Ответ на: комментарий от RazrFalcon

Сейчас стандарт де-факто: cmake. И то его не все используют..

аффтар box2d ниасилел :)

slackwarrior ★★★★★
()
Ответ на: комментарий от slackwarrior

А включение <QtGui> сразу валит mingw-конпелятор на машине с 16Gb :D

Поэтому приходится «пердолиться» с отдельными инклудами и забыть про прекомпилированный префикс.

arturpub ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.