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)

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

А в Gentoo только вчера появился Qt 5.6.1. Быстро они их клепают.

5.6 - это LTS ветка, она будет продолжаться параллельно с новыми.

anonymous
()

Кстати важное изменение - в 5.7 в бинарной сборке нет темы GTK, т.к. сейчас идет обкатка новой ее версии под GTK3. Обещают ее добавить уже в 5.8.

anonymous
()

Отлично, как раз шланг отвалился и планировал переустанавливать, а тут ещё и новая версия подоспела.

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

Некрофил-регистрант закукарекал.

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

> что то Qt начал слишком дофига всего уметь

Удивительно, что это уже не первый год, но никто до сих пор не заметил... Вот раньше стоило чему-либо появиться, как это сразу становилось минимальным системным требованием. А сейчас! «Представляем вашему вниманию супер мега крутую технологию!» «А нам пофиг, сделаем на чём умеем»

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

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

fluorite ★★★★★
()

Секта свидетелей autotools, они живые!

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

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

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

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

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

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

Я и ругался в рассылке, и на баг-трекере.. а всем пофиг, гы.

Пришлось писать самому на DirectShow в винде, и патчить код для Embedded Linux... но это просто ужос, товарисщи.. :((.

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

переход на *QBS* решает все проблемы со скоростью сборки.

кстати, они там портируют сборку самого Qt на QBS... надеемся, скоро (в Qt 6??) будет.. ))

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

Слоупоки всё ещё думали, что Qt это такая GUI либа? Как там оно, кстати, в криокамере было?

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

появится проблема с инклудом сторонних библиотек, все написано под qmake

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

Нытика все игнорируют?

Опана, герой, что-ли нарисовался?

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

Уже сколько лет использую QtCreator, а подобного поведения ни разу за всё это время не увидел. Может у кого-то с руками что-то не то или просто сказочник?

alex-w ★★★★★
()
Последнее исправление: alex-w (всего исправлений: 1)
Ответ на: комментарий от RazrFalcon

MOC от силы на 30% замедляет. Никакого сказочного прироста не будет.

Вся суть мыше-программистов - 30% для них ничто.

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

Хрена се... то есть это IDE виновата в том, что ты ничего не читая тычешь везде на OK и потом возмущаешься, что QtCreator не догадался что ты имел ввиду? И после этого ты еще смеешь называть себя разработчиком? Да обезьяна с гранатой аккуратнее обращается.

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

Хрена се... то есть это IDE виновата в том, что ты ничего не читая тычешь везде на OK и потом возмущаешься,

Если косорукие разработчики не смогли осилить дефольты, то да, это проблема и разработчиков, и их ide.

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

А мог бы просто взять QtAV.

Не мог:

1. Для Windows его замучаешься собирать (т.к. нужно доставить/докомпилить кучу всякого ffmpeg и прочего), и не факт что оно не будет «тупить»...

2. Для Embedded Linux (например, в моем случае на NV Tegra3) ffplayer крешится и никакого видео не воспроизводит. Т.е. тут или кросс-компилить ffmpeg заново с поддержкой GLES и прочих шняжек и проверять сначала с ffplayer... А потом, если повезет, то кросс-компилить еще и QtAV, и, если повезет, то, может это и заработает...

Но времени для эти метания у меня НЕТ, проще выкинуть/пропатчить QtMultimedia.

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

Такие вот дела...

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

Сотрудник The Qt Company Ларс Кнолл (Lars Knoll)

Ну да, CTO - практически рядовой сотрудник :)

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

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

Qt Creator с первых версий всё сохранял, если выставить в настройках галку «Save all files before build». Что за форменное неосиляторство зайти в настройки?

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

а в том что QtCreator как был поделкой — не нужной своим авторам, так и остался: падал он при импорте проектов еще в версиях 2+ :) А я всю дорогу говорил именно про недостатки среды

Не зря же у меня стоит:

slackwarrior ★★★★★ // Фанбой KDevelop; хейтер Qt Creator

Вы бы (KDE'шники) лучше сделали KDevelop нормальной кросс-платформенной IDE. И выловили там все баги, в т. ч. с разбором C++ встроенным парсером.

А вообще ты уже наверное пятое сообщение подряд вещаешь про

падал он при импорте проектов

Но так и не представил этих самых магических проектов. Обычно, когда что-то повторяют много-много раз, они это подкрепляют пруфцом-ссылочкой.

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

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

https://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundat...

Furthermore we will start work to integrate the Qt Quick Compiler functionality into the Qt QML module, targeting the Qt 5.8 release.

но ты пиши и дальше о своих фантазиях, нам они очень интересны

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

<offtop>Почему вы пишите новости о фреймворке, который так яро недолюбливаете?</offtop>

Потому что:

Есть всего два типа GUI-фреймворков: те, на которые люди всё время ругаются, и те, которые никто не использует.

 — Bjarne Stroustrup.

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

QtGstreamer, который я с наскоку не осилил кросс-компильнуть т.к. оно юзает Cmake + boost...

Для кросскомпиляции существует удобный инструмент который поддерживает как cmake так и autotools http://mxe.cc/

integrates well with autotools, cmake, qmake, and hand-written makefiles

boost как видно из таблицы успешно кросскомпилируется: http://mxe.cc/build-matrix.html

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

Прочтите всю ветку. Я отвечал на сообщение, в котором говорилось про «в разы быстрее».

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

Имхо, в Qt всё, кроме core, gui, widgets, qml - на уровне поделки.

QtMultimedia годится для воспроизведения примитивный роликов/треков и всё. QCamera, оттуда же, работает через одно место. Достаточно загуглить как вытащить из него отдельный кадр - так это вообще ппц.

QtSql неплох, для своих задач, но шаг в строну и всё.

QtXml и QtSvg мертвы. И тд.

RazrFalcon ★★★★★
()

Интересно, починили ли QTextDocument, а то с   баг был да еще при сборке из html если в родительский тег выставить background-color, то между дочерними иногда появляются безцветные дырки. Короче соберу, проверю и если что накатаю баг репорт, ибо по работе надо.

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

Вы случаем не тот kuzulis, который QtSerialPort?

Если да, то не в курсе, зачем в последних версиях добавили emit сигналов в методы setRequestToSend и setDataTerminalReady? У меня из-за этого общение стало ровно в два раза медленнее. Пришлось костылять свою обёртку.

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

QtXml и QtSvg мертвы.

В нашем проекте QtXml активно узается, ибо DOM делает из C++ некое подобие скриптового языка по структурам данных, что очень полезно для сокращения кода. И вроде бы с ним все ок и удалять его врядли будут. А вот svg там был гавном, никакого контроля над DOM моделью, всё запрятано в недрах либы. Да и вообще все эти приватные классы сплошные палки в колесах. Нормальная либа должна давать к себе полный доступ и удобство модификации всех аспектов поведения, иначе приходится велосипедить куски функционала с 0.

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

Насколько я помню, QtXml - depracated, в частности QDomDocument. И он сказочно тугой. В итоге отказался от него, и накостылял свою реализацию. Ну и он выделяет память под каждую ноду в куче, что совсем не айс.

никакого контроля над DOM моделью

Открою страшную тайну, там даже DOM нету. Он использует stream парсер, из-за чего куча ошибок ренедра. Что я, уже давно, пытаюсь исправить.

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

Так и не починили. Не работает отладка на несвежих маках

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

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

Ну конечно это все проблемы qmake, ага.

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

Qt Purchasing (LGPLv3);

Это ошибка, или правда LGPLv3?

Нет, Purchasing доступен и под LGPLv3.

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

Шта? :) Молоток, который изменяется в твоей руке (например, у него слетает боек) — попробуй им забить гвоздь :) Еще лучше — возьми «изменяющийся» топор.

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

slackwarrior ★★★★★ // Фанбой KDevelop; хейтер Qt Creator

Лолшто? :) КDevelop раньше падал на вложенных шаблонах. Но успевал запомнить открытые файлы — в итоге это решалось только началом новой сессии :)

Вы бы (KDE'шники)

Вы бы, проецирующие фанбои креатора, бггг, поменьше бы проецировали :)

Обычно, когда что-то повторяют много-много раз, они это подкрепляют пруфцом-ссылочкой.

Дадад, ссылочкой на NDA :) «что, ты пишешь не жопенсос? Фуууу»

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

Много проектов импортировал? Или только хелуворлды из самого креатора? :)

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

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

Многие любят превозмогать или тешить синдром утенка :) Годов до 30 — потом проходит :)

slackwarrior ★★★★★
()

Какой фреймворк лучший, это понятно. Но что будет с GTK+? Если он сдохнет, то не будет конкуренции и Qt превратится в УГ.

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

Я и ругался в рассылке, и на баг-трекере.. а всем пофиг, гы.

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

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

В итоге в Embedded Linux используется всё так же QtMultimedia->GStreamer?

Да, только пришлось немного «пропатчить» QtMultimedia чтобы оно рендерило видео используя HW ускорение: QTBUG-53646

Но при этом, кажется, есть ограничения: типа только фулл-скрин работает и кажется, оно убило мой HDMI дисплей.. :)

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