После шести месяцев разработки состоялся (http://blog.qt.io/blog/2017/01/23/qt-5-8-released/) релиз кроссплатформенного фреймворка Qt 5.8, продолжившего развитием ветки Qt 5.x. Исходные тексты компонентов Qt поставляются под лицензиями LGPLv3 и GPLv2, инструменты Qt для разработчиков, такие как Qt Creator и qmake, а также некоторые модули поставляются под лицензией GPLv3. Выпуск примечателен началом реализации идей, предложенных в рамках инициативы Qt Lite (https://www.opennet.me/opennews/art.shtml?num=44991), нацеленной на предоставление возможности формирования сборок Qt, содержащих только необходимые компоненты.
Основные изменения (hhttps://wiki.qt.io/New_Features_in_Qt_5.8):- С целью избавления Qt Quick от привязки к OpenGL и обеспечения независимости от графического API значительно переработана (http://blog.qt.io/blog/2016/08/15/the-qt-quick-graphics-stac.../) архитектура графической подсистемы, что дало возможность применения эффективных программных методов отрисовки на системах не поддерживающих OpenGL. Кроме программной отрисовки (QT_QUICK_BACKEND=software) также подготовлен бэкенд для DirectX 12 (QT_QUICK_BACKEND=d3d12). Функциональность модуля Qt Quick 2D Renderer интегрирована в Qt Declarative;
- В движке выполнения QML реализована новая инфраструктура кэширования, позволяющая кэшировать QML-файлы в предкомпилированном бинарном представлении. Кэширование дало возможность значительно ускорить повторную загрузку QML-приложений и сократить потребление памяти. Поддержка упреждающей компиляции Qt Quick будет продолжена в рамках коммерческого продукта Qt Quick Compiler;
- Включены наработки по обеспечению гранулированной сборки, позволяющие собирать модули, выборочно активируя только необходимую функциональность. Отныне Qt позволяет не только манипулировать подключением отдельных модулей, но и управлять составом модулей. Отключенная функциональность не включается в сборку, что позволяет создавать урезанные конфигурации, пригодные для использования на встраиваемых системах с ограниченным размером оперативной памяти и хранилища. По предварительным оценкам новая система сборки позволяет уменьшить размер статически связанного приложения Qt Quick на 70%, по сравнению с Qt 5.6;- В Qt Quick Controls 2 добавлены новые QML-типы Dialog, DialogButtonBox, MenuSeparator, RoundButton и ToolSeparator, а также экспериментальные типы MenuBar, Menu, SystemTrayIcon, ColorDialog, FontDialog, MessageDialog, FileDialog и FolderDialog;
- Модули Wayland Compositor, SCXML и Serial Bus, которые ранее предлагались (https://www.opennet.me/opennews/art.shtml?num=44614) для тестирования в качестве ознакомительных выпусков (Technology Preview), переведены в разряд полностью поддерживаемых;- В состав включён экспериментальный модуль Qt Speech (https://doc-snapshots.qt.io/qt5-5.8/qtspeech-index.html), предоставляющий средства для синтеза речи. Речевое сопровождение может применяться для повышения доступности приложений для людей с ограниченными возможностями или для реализации новых средств фонового информирования пользователя, что особенно востребовано для вывода уведомлений в приложениях для автомобильных информационно-развлекательных систем. В Linux преобразование текста в речь осуществляется при помощи библиотеки Speech Dispatcher (https://devel.freebsoft.org/speechd) (libspeechd), а на других платформах через штатный API операционной системы;
- Добавлен экспериментальный модуль Qt Network Authentication с реализаций протоколов аутентификации OAuth 1 и OAuth 2;- Объявлен устаревшим модуль Qt Script, который будет удалён в одном из будущих выпусков.
URL: http://blog.qt.io/blog/2017/01/23/qt-5-8-released/
Новость: http://www.opennet.me/opennews/art.shtml?num=45901
А первые controls'ы всё так же крашат? Или они всё, полностью про них забыли и сосредуточены с скоростью улитки на Controls 2?
А первые controls'ы всё так же крашат?Не слышал про крэши первых контролов.
> сосредуточены с скоростью улитки на Controls 2
Толсто. Но пилят активно вторые, да.
Еще как крэшат, там со сборщиком мусора беда
Ошибка у тебя в коде.
Они сами настоятельно не рекомендуют использовать Controls 1, там всё на виджетах работает
Впихни Control 1, например tooltip или combobox в ListView. После удаления и добавления элемента первый упадет, второй заглючит. Ибо их нельзя совмещать. Controls 2 - найтивные qml'евские, не тормозят, не глючат и не падают. Но до сих пор охватывают малую долю интерфейсных примитивов.
Божественный тулкит и фреймворк. Единственный в своем роде. Альтернатив никогда не было, и в будущем не предвидится. А после появления Qt Lite он стал лучший во всем. И это хорошо.
забыл добавить *хочу от этого тулкита ребёнка!*
Этот тулкит настолько крут, что я хотел бы переспать с ним и наделать кучу маленьких тулкитиков. Так лучше.
> С целью избавления Qt Quick от привязки к OpenGL и обеспечения независимости от графического API значительно переработана архитектура графической подсистемыИнтересно, что они специально для ветки 5.0 перерабатывали вывод графики и в результате избавились от программного рендеринга. Теперь вот обратно возвращают.
Да уж странно, молча и без объяснений.И вообще что-то отчётливо стала прослеживаться тенденция делать основной упор на разработку всяких кутэквиков и кумеэлей, в ущерб всему остальному, причём также молча и без объяснений зачем прикладывать такие большие усилия на разработку того чем практически никто не пользуется.
Да, на виджеты практически забили. Баги уже годами висят.
На виджетах, если я не ошибаюсь, реализованы Qt Quick Controls 1
Нет, они на QML/Qt Quick. Но могут использовать стили из Qt Widgets (кривовато, правда).
> Нет, они на QML/Qt Quick. Но могут использовать стили из Qt Widgets
> (кривовато, правда).В состав Qt Quick Controls 2 был добавлен экспериментальный модуль Qt Labs Platform, содержащий нативные для платформы компоненты QML. При отсутствии нативных компонентов на данной платформе, в качестве запасного варианта используется реализация на Qt Widgets.
Тут то как раз все понятно. Бизнес не может заниматься всем - ресурсов не хватит, но свою нишу занять нужно, поэтому акцентируют внимание на том, что могут (одно-два направления). В данном случае на наиболее активно растущем рынке (где проще занимать нишу), а именно мобильных приложений.
> а именно мобильных приложений.И встраиваемых решений.
Ага, никто не пользуется, весь KF пользуется.
В 6.0 наверное будут героически на псеводографический интерфейс для VR-шлемов переходить, а потом не менее героически возвращать возможность работать как раньше.
Потому, что OpenGL хорошо работает не везде. Например, на виндовс с интеловскими затычками вместо видеокарт.
> Потому, что OpenGL хорошо работает не везде.И уж конечно этого нельзя было предугадать ДО выпиливания. Даже зная, что под линукс единственный нормальный драйвер распространяется без исходников и его производителю приходится патчить каждые несколько релизов ядра.
Под Linux все хорошо. Проблема в том, что QtQuick 2 требует OpenGL 2.0, который хорошо работает и на смартфонах, и на Linux, и на MacOS. А вот на виндовс для некоторых интеловских видеокарт драйвер не может OpenGL 2.0.
Вот интересно, а как совмещаются такие казалось бы противоречивые понятия как "встраиваемые системы с ограниченным размером оперативной памяти и хранилища" и "Qt Quick"
Совмещается с экранами с низким разрешением?
На самом деле довольно удачно
что такое фреймворк и для чего он нужен?
>фреймворкЭто от английского frame и work: каркас/оправа и работа. А вместе это универсальный техпроцесс для производства разнообразных контейнеров. От мусорных пакетов, до махин вроде укрытия над ЧАЭС.
https://ru.wikipedia.org/wiki/%D0%A4%D1%...
это такой пакет, про который писал сам Фигурнов ещё в восемьдесят каком-то году
>Объявлен устаревшим модуль Qt Script, который будет удалён в одном из будущих выпусков.Опять? Сколько можно его удалять, ещё во времена Qt4 его объявили устаревшим и написали что удалят в одном из следующих выпусков. Прошли годы и ... его до сих пор удаляют, удаляют, похоже этот процесс будет тянуться вечно.
>>Объявлен устаревшим модуль Qt Script, который будет удалён в одном из будущих выпусков.
> Опять? Сколько можно его удалять, ещё во времена Qt4 его объявили устаревшим
> и написали что удалят в одном из следующих выпусков. Прошли годы
> и ... его до сих пор удаляют, удаляют, похоже этот процесс
> будет тянуться вечно.А замена ему есть?
>>>Объявлен устаревшим модуль Qt Script, который будет удалён в одном из будущих выпусков.
>> Опять? Сколько можно его удалять, ещё во времена Qt4 его объявили устаревшим
>> и написали что удалят в одном из следующих выпусков. Прошли годы
>> и ... его до сих пор удаляют, удаляют, похоже этот процесс
>> будет тянуться вечно.
> А замена ему есть?QtQML/QtJSEngine.
Qt - для неторопливых. Qt сам по себе неторопливый, судя по скорости отрисовки своих т. н. "виджетов".
С разморозкой тебя, как говорят на ЛОРе. Может у тебя и плазма до сих пор падает?
Поэтому от виджетов и отказались
Ну дык юзай Tk, он мгновенно всё рисует. А вот GTK уже не так быстро. Примерно так же как и Qt.
Используйте QML.
Прекрасная новость! Пошел праздновать.
Вот интересно, когда релизнется Qt 6 с фаршем вроде C++14 и C++17, побегут ли KDE'шники переписывать KDE на него?
Да.
Конечно.
> побегут ли KDE'шники переписывать KDE на него?Справедливости ради стоит заметить, что порт Qt4 -> Qt5 делается левой ногой вполсилы... в 95% случаев можно обойтись автозаменой. Перекатывание с kdelibs на kdeframeworks процесс не сильно связанный со сменой версии Qt, это скорее внутренние заморочки KDE-шников.
Вот переход Qt3 -> Qt4 местами был настолько проблематичным, что некоторый софт не дожил. Что будет в Qt6 пока известно только телепатам :) Может moc уже наконец выкинут (вроде в Qt5 уже можно без moc), а может еще что-то выдумают.
> Может moc уже наконец выкинутКогда все [основные] плюсовые компиляторы начнут поддерживать рефлексию, чтобы, например, можно было в рантайме получать списки сигналов-слотов-свойств объекта, тогда и moc выкинут. Уж сколько moc-офобам повторяли, что он не только для сигналов со слотами, но воз и ныне там...
И, кстати, именно moc генерирует реализации методов, объявленных как сигналы, так что никуда он в обозримом будущем не денется.
Не факт. http://www.opennet.me/opennews/art.shtml?num=42397
>Qt LiteЧто-то я не могу найти как этим пользоваться. Или доки ещё нет? Или я вообще всё понял неправильно и это какая-то отдельная редакция Qt?
Тоже не нашел материала, но полагаю можно либы пересобрать в любой нужной комплектации
Ну я сам Qt не собираю, а качаю стабильные версии через Qt maintenance tool.
От простого факта возможности собрать множество мелких либ вместо одной большой мне не слишком радостно.
Потому что он пока существует в Qt for Device Creation, хз когда в опен сорс версию затащат.
Хотя я наврал.
Из чейнжлога:
> The -no-feature-* option family was integrated with the rest of the configuration system. Numerous existing features were made optional, and build problems in various reduced configurations were fixed. This is an ongoing effort known as "Qt Lite".Список фич в src/corelib/global/qfeatures.txt
А что за ДЕ на скриншоте?
Похоже на QtCreator под Ubuntu.
винда
хотя если вопрос про IDE, а не DE, то Qt Creator
А вот скажите, милейшие, появилась ли в Qt возможность по быстрому собрать дистриб/полноценно_исполняемый_файл? Т.е. что бы по бырому накидал что-то , пару кнопок жмякнул и получил или свой исполняемый файл со всеми необходимыми библиотечками в одном каталоге или же статически скомпанованый , но так же ничего не требующий? Что бы вот как в давние времена в C++ Builder. Когда-то давно пытался ,но что-то не смог по быстрому. Нашел статью где говорилось что бы статически скомпоновать сначала надо все библиотеки для этого откомпилить. Компилил дня два, что-то недокомпилилось, сломалось, плюнул, забил. Но было жаль. Возможно я конечно неосилятор.
Сейчас это можно как-то по простому сделать? Что бы накидал, отправил человеку и не переживать, что не запустится т.к. нет какой-то библиотеки у него, а он не шарит.
windeployqt
macdeployqt
Отлично выглядит как то что нужно. Но вот под линух бы? Что-то не нашел сходу.
Под Linux пока нету.
Если кто-то использует qt для написания под андроид, может ли поделиться информацией как изменился объем apk с этим обновлением?
>как изменился объем apkНикак. Для этого нужно что-то делать, связанное с Qt Lite. А что именно -- данных в гугле пока нет.
Из dist/changes-5.8.0:- The -no-feature-* option family was integrated with the rest of the
configuration system. Numerous existing features were made optional,
and build problems in various reduced configurations were fixed.
This is an ongoing effort known as "Qt Lite".Список features здесь:
src/corelib/global/qfeatures.txt
Так они виджет для вэб-браузера в палитру вернули или нет?
>подготовлен бэкенд для DirectX 12Зачем эту микрософтовскую проприетарщину внедряют?