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)

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

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

А она и раньше не могла ей пользоваться, потому что в LGPL Qt виртуальная клавиатура отсутствовала. И сейчас не может. Или GPL или покупайте лицензию. Достаточно честно. С экранной клавиатурой была только одна проблема — ни одного полноценного примера чтобы написать самому. Теперь этот пример есть, не хочешь платить — напиши свою по образу оригинала.

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

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

Зачем так цепляться за этот autotools? Для своего времени была неплохая вещь, но сейчас есть и более современные решения.

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

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

но у меня не Андроид, а desktop PC с огромным ELO Touchscreen. И клавиатура открывается на полэкрана. Каждая буква там размером со средний смартфон. Выглядит потрясающе :)

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

перед сборкой нужно сначала все сохранить

в 2016-м во многих средах перед сборках сохраняется само :)

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

упорное перетаскивание некоторых багов из релиза в релиз — вот что поражает. (Ну и переписка в каментах к багу, вызванному «починкой», местных пользователей qDebug() с «починятором» тоже :))

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

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

А как она должна открываться? На мобильных устройствах в ландшафтном режиме так и открывается, неудобно же печать по маленьким кнопкам.

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

не хочешь платить — напиши свою по образу оригинала

но тролли сделали «красиво» - нужный API для виртуальных клавиатур находится в private секции и периодически меняется. Я использую свою клавиатуру, и она на протяжении всей ветки Qt 5.x отваливалась уже раз 5. Приходится постоянно заниматься её поддержкой вместо полезной работы. Я бы сказал, что что фразу «не хочешь платить — напиши свою по образу оригинала» нужно говорить при этом ехидно хихикая ;)

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

PC с огромным ELO Touchscreen

Таки виртуальная клавиатура для систем, в которых вообще input method не предусмотрен. Таких как голый Linux, QNX, игра на весь экран с управлением через геймпад, телевизор с пультом.

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

Таки виртуальная клавиатура для систем, в которых вообще input method не предусмотрен

класс, то есть для тачскринов она не предназначена? Так и что нам бедным делать?

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

нужный API для виртуальных клавиатур находится в private секции и периодически меняется

Столкнулся с тем же самым, единственная клавиатура, которая шла из коробки была под Андроид, попытка понять её исходный код дабы написать свою было ещё то удовольствие. Было видно, что они делали API ровно под свои задачи, интересно посмотреть как сейчас.

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

то есть для тачскринов она не предназначена?

Ну почему же, вполне предназначена. Куча встраиваемых устройств имеют тачскрины. Только без поддержки виртуальной клавиатуры в самой ОС.

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

какраз только сказочный прирост и есть..

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

Крайний раз тыкал в QtCreator релиз назад: «кроссплатформенная IDE»(ТМ) не дружит с сорцами кроссплатформенных прог — не переваривают его зайчатки разума то, с чем давно справляются gcc, msvc (и равно «надмозги» КDevelop (раньше падал), Eclipse и MSVS), хотя то что вызывает у креатора «разрыв шаблона», собирается и работает под линуксом, оффтопиком (mingw тоже) и андроидом (при всех раньших плясках с бубнами и GXX_EXPERIMENTAL_CXX0X макросами :)) Ручные фиксы инклудов <qpair> бесили еще в проприетарном 3.0 от Троллей (ахах, поддержка макоси). Чо-то там меняется конечно Номера версий ПО, в котором глючит то, что вроде уже давно должно перестать. «Джвойка» — это же п-ц как сложно. Но я не помню, когда последний раз чего-то фиксил в std::pair. Или что мне понадобилось лезть в чей-то багтрекер ради этого :)

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

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

А вы, наверное, программист, да? Для справки: среда разработки Qt Creator ничего не компилирует. Не умела и не умеет.

Я так понимаю, это был камень в огород gcc?

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

А поставляется в компле с Б означает что существует комплект поставки содержащий А и Б.

а вот если бы написали поставляется в составе, тогда получилось бы так как вы поняли...

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

А вы, наверное, программист, да? Для справки: среда разработки Qt >Creator ничего не компилирует. Не умела и не умеет.

Я так понимаю, это был камень в огород gcc?

Джля справки, которая удостоверяет настоящая что вы кэп, веский но не по теме, среда Qt не умела и не умеет то, что давно умеют зайчатки надмозга других сред: не падать от непонятного при импорте сорцов, честно признавшись «ну, нишмагла» :) В крайнем случае — иметь возможность работать с застрелившимся надмозгом методом его полного отключения, интеграция со сборочными тулами тоже «продолжает желать лучшего» (это камень именно в огород креатора), если вы помните, с чего все начиналось и в каком оно щас состоянии (прогресс-то радует, когда он есть, — удручает страсть к починке не сломаного, как в случае с qDebug и... игнор сломаного :)

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

Никто ничего не путает :) Если среда не может разобрать исходник — и не может не разбирать — это проблема среды, а не компилятора. Если импорт исходников валит среду — это не проблема компилятора :) (Даже фреймворк можно хоть как-то использовать отдельно, но подход к «починке не сломаного» у «мантейнеров» фреймворка и среды — общий :) «Культура разработки» (ТМ) То же самое относится к крэшам на платформах, заявленных как «поддерживаемые» — крестик или трусы. Или поддерживаемые — и можно работать. Или можно работать только «превозмогая», что где-т после 30 пропадает охота делать :) А стал быть честный ответ будет она утонула «сломано» или «потрачено». «Мы это не тестили как следует, но... вы держитесь там» (с)

slackwarrior ★★★★★
()
Последнее исправление: slackwarrior (всего исправлений: 2)
Ответ на: комментарий от arturpub

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

Рукожопие - это состояние твоего ума.

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

С таким подходом — зачем вообще нужна IDE? :) Ну... это тоже с возрастом проходит.

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

Она и подсвечивать/помогать не умеет. А что тогда она хорошо умеет? (Сексистская шутка-каламбур here)?

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

Я пожалуй не буду ее выпиливать из проекта (хотя еще не поздно), но сам больше к этому крятору не притронусь, и другим не советую.

arturpub ★★
()

Это только у меня в qtcreator 4, в котором переехали на clang стало крайне медленно и глючно работать автодополнение?

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

Откуда ты берешь эту чушь? В исходном сообщении что сказано?

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

Как среда может «минуту реконпелять десяток исходников», если это делает компилятор? Завязывай с наркотиками.

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

им надо было libsigc++ использовать и избавится от макросов.

samy_volosaty ★★★★★
()

программировать что-нибудь удобно на Qt однако gui для рабочего окружения предпочитаю gtk

dinama
()
Последнее исправление: dinama (всего исправлений: 1)

что то Qt начал слишком дофига всего уметь судя по маркетинговым выкладкам, остается вопрос как каждая отдельная вещь там хорошо работает то?

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

Как среда может «минуту реконпелять десяток исходников», если это делает компилятор?

Дело не в среде и не в компиляторе, дело в системе сборки, qmake, которая никогда не была инкрементальной. Хоть бы QBS уже ставили по-умолчанию, а так разработчики Qt продолжают водить всех за нос, а неискушённые пользователи жевать кактус.

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

Не. Это ты завязывай с наездами :) Среда может и должна интегрироваться с компелятором, отладчиком и т.д. в достаточной степени — чтоб в ней работать можно было. Алсо не должна падать при разборе сорцов именно зайчастками разума, которые к конпелятору не имеют отношения — импорт сорцов в проект, например, разбор сорцов для навигации по ним. Дело не в придирках к пуговицам и твоих выебонах с цеплянием к словам, а в том что QtCreator как был поделкой — не нужной своим авторам, так и остался: падал он при импорте проектов еще в версиях 2+ :) А я всю дорогу говорил именно про недостатки среды — которые ты заигнорил и пошел сливаться про наркоманов. Тебе да, про наркотики интереснее разговаривать.

slackwarrior ★★★★★
()
Последнее исправление: slackwarrior (всего исправлений: 2)

Qt Virtual Keyboard (GPLv3)

Это что, значит в linux появится экранная клавиатура?

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

И что, до сих пор Creator падает, даже самый свежий? Я не говорю про исправить падение самому (хотя исходники открыты — собрал, запустил под отладчиком, починил), но хотя бы баг разработчикам был отправлен?

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

Не обращайте внимание. Автор в каждой теме ноет.

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

что то Qt начал слишком дофига всего уметь судя по маркетинговым выкладкам, остается вопрос как каждая отдельная вещь там хорошо работает то?

Как в Америке или Китае. Слишком дофига всего производят и все качества ниже плинтуса. Не то, что Россия, производящая хорошие оружие и автомобили.

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

Баг разработчикам был отправлен еще до меня и не один (ссылка на одну такую переписку даже в этом треде есть :) Но да: универсальный отмазон дизориентированных хикки без ноулаеф «это ж жопенсос!» не прибавляет QtCreator'у конкурентных преимуществ по сравнению с другими, в т.ч., совершенно бесплатными и открытыми IDE, которые... на минуточку... прекрасно работают с Qt (это киллер-фича креатора? Ну ок) не делая себе вдоль от непонятной (в 2016 году, да) языковой конструкции, и при том не страдают совершенно детскими болезнями, которые простительны были для 1.0.0, терпимы в 2+, но в 4+ и в 2016 году намекают на отношение и «исторически сложившуюся практику» :) «Хотя исходники открыты — собрал, запустил под отладчиком, починил» — еще можно форкать его, да? Но зачем? :)

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

Дело не в среде и не в компиляторе, дело в системе сборки, qmake, которая никогда не была инкрементальной. Хоть бы QBS уже ставили по-умолчанию, а так разработчики Qt продолжают водить всех за нос, а неискушённые пользователи жевать кактус.

qmake входит в состав Qt, а не QtCreator. Записывать в минусы QtCreator медленную сборку проектов - категорически неверно.

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

qmake входит в состав Qt, а не QtCreator.

Верно, но qmake в Qt используется для сборки самого Qt. Система сборки же для пользовательских проектов это прерогатива IDE и Creator вполне мог бы по умолчанию использовать QBS или CMake. И претензии к нему будут до тех пор, пока он пихает qmake как основную систему сборки.

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

Да, я свалил в кучу неприязнь к культям, креатору и их системе сборки/препроцессинга, в пофигистической надежде, что в тред не ворвутся угрюмые педанты. Тебе об этом целую страницу толкуют, успокойся уже, вот держи цветочек 🌹

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

Это только у меня в qtcreator 4, в котором переехали на clang стало крайне медленно и глючно работать автодополнение?

Не знаю на счёт глючно, у меня он правильнее разбирает код и показывает такие предупреждения, которые можно заметить самому разве что случайно. Но на счёт медленно всё верно, издержки честной компиляции на лету. Благо сей плагин можно отключить.

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

[бес]платными и открытыми IDE, которые... на минуточку... прекрасно работают с Qt (это киллер-фича креатора? Ну ок) не делая себе вдоль

А это какие, в чем можно писать под кути и не страдать? Вопрос очень насущный, памагибрат.

arturpub ★★
()

Прелестно! Отдельное спасибо автору новости за работу!

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

Ложка дёгтя. Когда-то обещали уже в 5.7.

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

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

Зачем так цепляться за этот autotools? Для своего времени была неплохая вещь, но сейчас есть и более современные решения.

ЕМНИП Oracle перевел сборку OpenJDK (а это 1kk строк злого с++ кода и куча поддерживаемых платформ) на autotools только в версии 8, т.е. совсем недавно. И сделано это явно было не от недостатка ресурсов (над системой сборки выделенная команда работает), а потому что autotools - это стандарт. В ICU - а это одна из наиболее используемых библиотек из все существующих - также autotools.

А как выглядит сборка большого проекта без autotools можно посмотреть на примере OpenSSL.

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

Ложка дёгтя. Когда-то обещали уже в 5.7.

Если посмотреть в профилировщик, то можно увидеть, что компиляция - не самая затратная часть, создание объектов гораздо дольше. Так что какого-то огромного прироста производительности все равно ждать от компилятора не стоит.

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