После полугода разработки представлен (http://blog.qt.io/blog/2017/05/31/qt-5-9-released/) релиз кроссплатформенного фреймворка Qt 5.9, который причислен к категории LTS-выпусков, обновления для которых выпускаются в течение трёх лет. Исходные тексты компонентов Qt поставляются под лицензиями LGPLv3 и GPLv2, инструменты Qt для разработчиков, такие как Qt Creator и qmake, а также некоторые модули поставляются под лицензией GPLv3.Основные изменения (https://wiki.qt.io/New_Features_in_Qt_5.9):
- В состав модуля Qt Core включено два новых класса: qfloat16 для манипуляции 16-разрядными числами с плавающей запятой, позволяющий улучшить совместимость с API, связанными с GPU; QOperatingSystemVersion для определения операционной системы и версии запущенного приложения;
- В модуль Qt Network добавлена поддержка протокола HSTS (HTTP Strict Transport Security), позволяющего владельцам сайтов указать о необходимости использования шифрованного соединения и определить правила для переброса на соответствующую HTTPS-область;- В модуль Qt NFC добавлена серия улучшений, специфичных для платформы Android;
- В модуль Qt Web Sockets добавлена возможность использования внешних TCP-сокетов;
- В Qt Bluetooth обеспечена поддержка платформы WinRT и появились средства для управления периферийными устройствами Bluetooth в Android;
- В модуле Qt GUI реализован кэш шейдеров, в котором могут сохраняться скомпилированные шейдеры OpenGL для последующего повторного использования. Добавлена поддержка вычислительных шейдеров
(Compute Shaders). В движок отрисовки через OpenGL добавлена возможность работы с профилями OpenGL Core;- Продолжено (https://blog.qt.io/blog/2017/05/24/qt3d/) усовершенствование модуля Qt 3D, который уже можно рассматривать как полнофункциональный 3D-движок. Добавлена поддержка интеграции Qt Quick в сцены Qt 3D для представления двумерных интерфейсов в трёхмерном окружении. Также имеется обратная возможность интеграции трёхмерной сцены в двухмерный интерфейс на базе Qt Quick. Добавлены два новых материала QMetalRoughMaterial и QTexturedMetalRoughMaterial, а также новый тип освещения QEnvironmentLight, при отрисовке которых используются реалистичные алгоритмы PBR (Physics Based Rendering). В Qt 3D Animation добавлена поддержка анимации по ключевым кадрам с интерполяцией промежуточных кадров на основе кривых Безье. Добавлены новые компоненты QLevelOfDetail и QLevelOfDetailSwitch, позволяющие управлять уровнем детализации рендеринга, варьируя между скоростью и качеством. Добавлен класс QExtrudedTextGeometry для трёхмерной отрисовки текста;
- В JavaScript и QML движок добавлен новый сборщик мусора, обеспечивающий более высокую производительность и снижающий фрагментацию памяти;- Представлена новая инфраструктура кэширования QML, поддерживающая два режима: создание бинарного кэша для QML-файлов при первом запуске приложения и упреждающее формирование кэша скомпилированных компонентов QML на этапе сборки программы
- В Qt Quick задействован новый кэш шейдеров OpenGL, реализованный в Qt GUI. Также представлен специальный обработчик для обеспечения совместного использования данных изображений между разными процессами и новый бэкенд OpenVG, позволяющий организовать работу на оборудовании, поддерживающем только 2D-ускорение;
- Проведена (https://blog.qt.io/blog/2017/05/31/ready-made-ui-controls-qt.../) большая работа по повышению стабильности и производительности Qt Quick Controls 2, добавлена поддержка мультитач;
- Модуль Qt Location добавлена поддержка наклонных проекций вращения карт, управляемых через API или экранные жесты. Добавлен новый плагин для работы с Mapbox, использующий для отрисовки движок на базе OpenGL;
- Qt Webengine обновлён до кодовой базы Chromium 56;
- В виртуальной клавиатуре появилась поддержка смены раскладки;
- Представлен новый экспериментальный модуль Qt Remote Objects (https://doc-snapshots.qt.io/qt5-5.9/qtremoteobjects-index.html) с реализацией механизма межпроцессного взаимодействия;- Добавлена поддержка новых платформ QNX 7.0 и INTEGRITY OS (https://blog.qt.io/blog/2017/05/17/integrity-rtos-support-qt.../);
- Добавлена поддержка сборки Qt в режиме оптимизации размера "-Os", позволяющая сократить размер исполняемых файлов приложений и библиотек на 5-20%;
- Внесена большая порция (http://blog.qt.io/blog/2017/05/31/qt-lite-qt-5-9-lts/) улучшений в Qt Wayland Compositor, многопоточную систему отрисовки для встраиваемых устройств, использующую протокол Wayland.
URL: http://blog.qt.io/blog/2017/05/31/qt-5-9-released/
Новость: http://www.opennet.me/opennews/art.shtml?num=46632
а где 5.8.1, бестолочи
Не осилили.
Как и 5.6.3 перенесли на август... в 5.6.2 много регрессий было, мы так и не решились обновляться, сидим на 5.6.1
> Qt
> Qt Network
> Qt Bluetooth
> Qt 3D, который можно рассматривать как полнофункциональный 3D-движок
> JavaScript и QML движок
> Qt Quick
> Qt Location
> Qt Webengine
> Qt Remote ObjectsНу всё, emacs, подвинься. Окошки-то оно ещё рисует?
Окошки рисуются отдельным плагином.
Ну ты сравнил х с трамвайной ручкой.
Одно дело текстовый редактор, другое дело _кросплатформенный_ тулки.
Сравнение вполне понятное. Emacs уже давно вышел за рамки текстового редактора: во первых это текстовой процессор, во вторых там столько плагинов реализующих эмулятор терминала и веб-браузер, что его часто в шутку называют Операционной системой Emacs.
Но ОП просто не понимает, что в Qt, так же как и в Emacs используется плаигинная система, которая абсолютно не к чему не обязывает. Не хочешь ты Qt Quick -- не ставь, он и не нужен, если ты делаешь приложения на Qt Widgets. Ну и всё остальное туда же.
Тестовый редактор/процессор должен иметь вполне определенную функцию: редактировать текст. И здесь действительно плохо, что в него тащат несвойственные ему функции.А вот кросплатформенный графический тулкит просто обязан иметь богатый функционал, необходимый программисту на разных ОС.
Сравнение бесполезного избыточного функционала с вполне необходимым.
Перечитай ещё раз, что я написал.> плагины
В Емакс не обязательно тащить кучу дерьмa, так же как и необязательно тащить все части Qt, которые тебе наврядли понадобятся для разработки обычной гуёвины. Например, зачем тебе там 3D движок?
Не кипятись, я тебя прекрасно понял. Но этого не понимает автор первого сообщения. Для него наличие разнообразных модулей в Qt является чем-то из ряда вон выходящим. Поэтому сравнивать Qt с емаксом глупо. В Qt все модули могут пригодиться (хот и в разных программах), а в емаксе необходимость наличия эмулятора терминалов под большим вопросом (хоть это и плагин).
> Не кипятисьЯ не кипячусь, думал ты правда не понял. Ладно беру свои слова в зад.
Рисует и лучше чем многие. Все что ты тут накопипастил ставится по желанию и не влияет на работу.
Тем временем во всю пилится PySide2... хотя без возможности ваять дизайн на бегу не совсем торт (я про костыли с перекомпиляцией ui-ресурсов на каждый чих).
> ... qfloat16 для манипуляции 16-разрядными числами с плавающей запятой, позволяющий улучшить совместимость с API, связанными с GPU; QOperatingSystemVersion для определения операционной системы и версии запущенного приложения;Зачем это её интересует? Оно уже давно всё ядро вместе с юзерспейсом заменяет.
А что нынче осталось такого, что умело бы тупо рисовать гуи, но делало это хорошо? Только EFL?
Попробуй написать кросплатформенную программу, сразу поймешь, что гуй это только малая часть.
Мне не надо _настолько_ кроссплатформенно, а надо будет — прихвачу пару других либ.
> прихвачу пару других либа потом ещё прихвачу пару тройку других...
RedHat-GNOME-подход.
...а потом ещё немножко, и ещё немножко... (с) Союзмультфильм.
А потом окажется, что одна паратройка не работает в win, вторая паратройка криво работает в embedded третяя паратройка вообще отсутствует в mac. Из-за этого в программе будет каша разных либ и реализаций алгоритмов на разных ОС. И поддерживать эту кашу будет ой как трудно. А еще жизнь превратиться в отслеживание багов во всем этом зоопарке либ на разных ОС. И так для всех программистов и их программ: будут выполнять одну и ту же работу повторно, хотя можно это сделать один раз.
Какие все умные, так хорошо знают, что мне надо...
Я не собираюсь писать жуткие комбайны, но иногда хочется что-нибудь простое-юниксвейное, но с окошками (редко). А винду вашу я вообще в гробу видал. Переносимости на уровне POSIX мне за глаза хватит.
> но иногда хочется что-нибудь простое-юниксвейное, но с окошкамиТогда тулкит твоей мечты: FLTK. Кроме рисования окошек в иксах ничего не умеет. Ну или xcb\xlib. Выбирай.
Да вообще, не нравится FLTK, напиши свой!
Му-ха-ха
Только хотел написать то же самое.
> Попробуй написать кросплатформенную программу, сразу поймешь, что гуй это только малая
> часть.Особенно чтобы оно не только на платформе Qt работало... Так сразу и поймёшь. Если конечно внезапно понималка не сломается.
> Особенно чтобы оно не только на платформе Qt работало..
> платформе
> QtПо моему кому-то пора спать. Речь шла об операционных системах.
> По моему кому-то пора спать. Речь шла об операционных системах.Вот и поломанная понималка...
Завязывай пить, у тебя каша в голове.
Вы вообще этот набор библиотек видели? Это комбайн - всё в одном. А реализация вообще поражает. Мы используем eina оттуда (hash), сделали прослойку абстракции над функциями eina. Чтобы сделать нормальную обработку ошибок, пришлось в абстракции проверять тип ошибки в eina и задавать соответствующий errno, т.к. нигде не сказано, что библиотекой errno поддерживается.А самое забавное - там своя система регистрации и обработки ошибок. Один тип ошибок - одна переменная. Но т.к. регистрация динамическая, то попробуй найди все возможные типы ошибок по все библиотеке... В документации ни слова о том, какая функция какие ошибки может возвращать. Приходится рыть исходники.
А из-за таких вещей как регистрация ошибок модулями они пошли тем же путём, что и gtk. Есть функция инициализации библиотеки, есть освобождения, и есть запуск основного цикла (последний необязателен). Но.. зачем мне лишний вызов функции инициализации библиотеки, если требуется использование одного лишь hash?...
Но это всё мелочи. А вот попробуйте добавить в hash в качестве данных NULL. Не поддерживется, увы. Для них это ошибка. Поэтому для хранения прямо в указателе типа int приходится делать махинацию вида (void *) (intptr_t) (value + 1), при условии, что значения не могут быть меньше нуля. О хранении всего диапазона чисел вообще и речи нет по той причине, что 0 уже отпадает, а лишние операции для проверки на 0 уменьшили бы на порядок читабельность кода и немного производительность.
Пока мечтаю освободить себе время по вечерам и написать аналогичную версию библиотеки, но реализованную по всем правилам POSIX, чтобы избавиться от лишней зависимости.
Ну сами виноваты, зачем ради одних только хеш-таблиц было тянуть такую навороченную библиотеку? Разных реализаций вагон, да и на коленке сделать нетрудно.
Потому что сами алгоритмы реализации качественные, работает и лицензия подходящая. Неудобно программировать - это уже второстепенный вопрос для коммерции. Быстрее, чем писать самому, лучше, чем аналоги.
В glibc есть hcreate_r, hsearch_r, hdestroy_r — это если переносимость не важна, конечно.
Присматривался, крайне неудобные и ограниченные штуки. Не думаю, что ими много людей пользуются. Да и там не будет hash, где ключом будет int32_t. Это один из больших плюсов eina. Идеально подходит для использования в библиотеках, реализующих какие-либо протоколы.
>А что нынче осталось такого, что умело бы тупо рисовать гуи, но делало это хорошо?FLTK ?
> FLTK ?А как оно себя ведёт на экранах с высоким разрешением, например?
Вот не знаю, есть ли смысл спрашивать про поддержку вяленого, потому как, с одной стороны, не нужно, с другой — фиг знает, как обернётся, и на всякий случай хорошо бы иметь.
> А как оно себя ведёт на экранах с высоким разрешением, например?Нуу... http://www.oyranos.org/2016/01/high-dpi-with-fltk/
> Вот не знаю, есть ли смысл спрашивать про поддержку вяленого
Её нету, скорее всего. Там же чистый xlib (или xcb, забыл) используется. Хотя вот в FLTK2 вроде есть экспереминтальная поддержка Cairo.
Тут ещё можно почитать:
https://www.mail-archive.com/fltk-dev@easysw.com/msg083...
wxwidgets
> wxwidgetsНадстройка над GTK с такой же кучей "нунежно" как и в Qt. Анонимы негодуют.
Этот фреймворк не имеет отношения к GTK. Сочетания лёгкости, функциональности и нативной отрисовки более чем достаточно для написания качественного гуёвого софта.
> wxWidgets covers systems such as ... Linux/Unix (X11, Motif, and GTK+). Он тянет за собой гтк, более того, он через него рисует.
> wxWidgets 3
> 11 November 2013
> GTK+ 3 port
Выделил то, что тебе выгодно, а всё остальное решил опустить? Молодец, уважаю.
И ещё одно, чтобы сомнения в аутентичности wx совсем рассеялись:
https://wiki.wxwidgets.org/WxWidgets_Compared_To_Other_Toolk...
И что? Что ты этим хотел сказать то? Там ничего не написано, что wx не может рисовать не через GTK. Motifi сдох, через xlib\xcb мало кто сейчас делает, так что гтк или qt. Кстати, wx умеет в qt.А это, чтобы твои сомнения окончательно развеялись:
$ apt depends libwxgtk3.0-0v5
libwxgtk3.0-0v5
Зависит: libc6 (>= 2.15)
Зависит: libcairo2 (>= 1.6.0)
Зависит: libgcc1 (>= 1:3.0)
Зависит: libgdk-pixbuf2.0-0 (>= 2.22.0)
|Зависит: libgl1-mesa-glx
Зависит: <libgl1>
libgl1-mesa-glx
Зависит: libglib2.0-0 (>= 2.24.0)
Зависит: libgtk2.0-0 (>= 2.24.0)И пруф про qt: https://wiki.wxwidgets.org/WxQt
freeglut
Очередная порция глюков/багов/недоработок.
Эти недотёпы сами не осилили GSS API и из Webbengine его выкинули.
Красавцы.
Пофиксили несколько тысяч багов, но сколько их ещё осталось? Тем не менее - лучший графический тулкит ever
Мои не пофиксили, увы.
По крайней мере один QTBUG-59737 до сих пор висит как P2.
>Qt Webengine обновлён до кодовой базы Chromium 56;Qt Webengine уже не валится с драйвером nouveau?
А хромоногий разве не валится? У Нуво же 3d работает чуть лучше чем никак, а хромиумы и иже с ними сильно зависимы от 3d ускорения.
По графикам складывается впечатление, что за релизом 5.6 последовал 5.9, а 5.7 и 5.8 - таких не было.
По графикам складывается впечатление, что сравнивали LTS-релизы, а остальные rolling scopes не интересны в длительной перспективе.
а где сборка MSVC2013 под x86? почему x64 есть, а x86 нет?
>> а где сборка MSVC2013 под x86? почему x64 есть, а x86 нет?
>x6464 тумака тебе. Или один 64-кратный. Аккуратней пиши!
> а где сборка MSVC2013 под x86? почему x64 есть, а x86 нет?По ссылке
> We cannot offer pre-built binary packages for every possible windows combinations. With Qt 5.9 there is 32 bit ones for minGW and MSVC2015Если сильно горит именно 2013, собери сам =) Хотя мне 2015 не понравилась, остановился на 2013 CE и как чутка допилят перейду на 2017 CE, там говорят докер, SSH и деплой в линух
Один их лучших фреймворков! И одна из немногих компаний, где польза > маркетинга.
Уже единственный. И компания ничего нового, кроме маркетинга, не привнесла.
> Исходные тексты компонентов Qt поставляются под лицензиями LGPLv3 и GPLv2GPLv3 же. Начиная с Qt 5.7
>> Исходные тексты компонентов Qt поставляются под лицензиями LGPLv3 и GPLv2
> GPLv3 же. Начиная с Qt 5.7Неа, там указано GPLv2/GPLv3.
Может, какие-то огрызки остались от GPLv2, я не знаю, но вообще оно всё GPLv3: http://i.imgur.com/QoGBTck.png - это скрин из сейловой презентации, и хотя на нём не всё перечислено, и часть информации уже устарела, но суть - нету GPLv2 больше (кроме WebEngine?), начиная с Qt 5.7 всё перешло на GPLv3.
...и LGPLv3.
Один из разработчиков Haiku OS — 3dEyes собщил об успешном портировании Qt 5.9Qt 5.9.0 for Haiku
Опубликовано: 7 июн. 2017 г.
QtMultimedia with GStreamer backend
QupZilla and Youtube work fine