LINUX.ORG.RU

Состоялся релиз фреймворка Qt 6

 


4

7

Новые возможности Qt 6.0:

  • Единый интерфейс аппаратного рендеринга с поддержкой Direct 3D, Metal, Vulkan и OpenGL
  • Отрисовка 2D и 3D графики объединена в единый графический стек
  • Qt Quick Controls 2 получили более нативный внешний вид
  • Поддержка дробного масштабирования для HiDPI-экранов
  • Добавлена подсистема QProperty, обеспечивающая бесшовную интеграцию QML в исходный код на языке C++
  • Улучшено Concurrency APIs, позволяющее вынести работу в фоновые потоки
  • Улучшена поддержка сети, что позволяет добавлять собственные бэкэнды сетевых протоколов
  • Поддержка C++17
  • Поддержка CMake для сборки приложений Qt
  • Qt for Microcontrollers (MCU), для работы которого достаточно всего лишь 80 Кб ОЗУ в минимальной конфигурации

С полным списком нововведений можно ознакомиться по ссылке ниже.

>>> Подробности

Существенно модернизирован QML:

  1. Поддержка строгой типизации.
  2. Возможность компиляции QML в представление на C++ и машинный код.
  3. Перевод полной поддержки JavaScript в разряд опций (использование полнофункционального JavaScript-движка требует больших ресурсов, что мешает применению QML на таком оборудовании, как микроконтроллеры).

Это отличное решение, выкинуть вебню-клей в лице JavaScript’а из QtQuick и транспилировать логику сразу в быстрые крестцы. По мотивам этого треда, см. комментарий от @hobbit: Зачем нужен QML в Qt? (комментарий)

Получается они в итоге пришли к решениям, косвенно схожими с теми, что были озвучены нами в том топике. Осталось только понять, зачем нужно было вообще ковыряться с JavaScript.

В свете озвученных метаморфоз в QtQuick/QML сегодня очень смешно выглядят заявления всяких удалённых ЛОРовских клоунов-фанатиков с порваным задом по ссылке выше.

Специфичные для OpenGL классы перемещены из QtGui в отдельный модуль QtOpenGL.

Это что же получается, приложение-кнопка на Qt теперь не будет зависеть от OpenGL, как в Qt 5? qt 5.3 и qt 5.5 (комментарий)

Ой, а ЛОРовские клоуны-фанатики на всю критику по раздутию зависимостей фреймворка Qt 5 визжали «так надо! вы ничего не понимаете!». Внимание, риторический вопрос: будут ли ЛОР’овские Qt-фанатики теперь визжать «верните нам в QtGui зависимость от OpenGL»?

Это очень хорошо, что разработчки Qt – адекваты, а не какие-нибудь фракталы с ГСМ, прости-господи. И это отлично, что в Qt 6 начали исправлять архитектурные недостатки и жирность Qt 5, в котором была заявлена некая «модульность», а на деле если сравнивать с Qt 4 – размер приложения-кнопки вырос в два раза как раз за счёт подобного «мёртвого» хлама внутри QtGui.

Qt for Microcontrollers (MCU), для работы которого достаточно всего лишь 80 Кб ОЗУ в минимальной конфигурации

Интересно, а QString и QVector там полноценные? Это очень круто, использовать сахарок Qt для разработки под MCU и какой-то рутины вроде нормальных операций со стороками.

Поддержка CMake для сборки приложений Qt

Эх, очень жаль что этот выбор похожей на autocrap поделки сугубо политический и кошерный и свой собственный QBS не прижился в Qt, но получился настолько удобным, что на него даже сторонние программисты из Embedded-мирка обратили внимание: Создаю QBS плагин для VS Code (комментарий)

Печально, что на IT, как и на весь наш мир действуют одни и те же законы, из-за которых выигрывает не простое и приятное решение, а уродливое и неказистое: autotools, CMake, X.Org, PHP, etc.

Поддержка HiDPI

Так-то давно она была. Как минимум с Qt 5.6 нормально реализовали, но вроде как не для всех тем, а для Fusion. Улучшена, наверное?

@hobbit: Они таки убили неюникодные кодировки. Одной причиной использовать QString стало меньше. Притом, что файлы, использующие эти кодировки, у пользователей никуда не девались.

Соглашусь с тобой. Это может быть проблемой, если ты делаешь программу которая, например, читает какой-то специфический и древний файл. Или из определённой БД берёт строки в каком-нибудь там Win1251 или Win1252. Получается теперь чтобы манипуляции с такими сущностями производить (хотя бы конвертнуть их в приемлемый для фреймворка вид), нужно будет тянуть в свой Qt-проект какие-нибудь сторонние либы типа iconv, у которых с кросс-платформенностью не всё так радужно, как у Qt? Печальная ситуация, согласен.

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

Поддержка CMake для сборки приложений Qt

Это уже сто лет есть. Или что тут имеется ввиду.

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

Они таки убили неюникодные кодировки. Одной причиной использовать QString стало меньше. Притом, что файлы, использующие эти кодировки, у пользователей никуда не девались.

А можно тут подробнее?

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

А ну тут уж не сказать, что очень необходимо. Но раз полностью переходить - то для галочки нужно.

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

Поддержка CMake для сборки приложений Qt

Эх, очень жаль

Эх, нет.

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

О, наконец то. Интересно как оно будет с Canadian Cross работать %) С qmake это боль и страдания.

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

каждые новые кеды хуже предыдущих, так что это такое

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

что-то слишком дохрена на самом деле

Не мало, согласен, но когда пытаются .net Java Lua uPython или даже JS запихнуть во что-то крошечное, совсем мало не выходит. Сабж в STM32 в некоторый уже залезет, а если туда SDRAM подключить

Собираюсь попробовать Qt MCU, а ранее пробовал uPython

I-Love-Microsoft ★★★★★ ()
Ответ на: комментарий от rumgot

Это уже сто лет есть. Или что тут имеется ввиду.

Коряво несколько написано. Это сборка самого фреймворка и инструментария. Qt 5 и Qt Creator по умолчанию использовали для собственной сборки доисторический QMake (выросший из tmake) и configure-программу (не такую, как в autotools, а свою). И сначала они собирали QMake (и кажется QtCore) обычными Makefile, а потом собранный qmake генерировал Makefile’ы для сборки всего остального.

Эх, нет.

Это вкусовщина. CMake, конечно лучше, чем описанный мной способ выше, но то что Qt убил для себя собственную разработку (QBS), гораздо более адекватную, чем CMake – стыд им и позор. Тем более, что она прижилась вне Qt экосистемы. Редкий проект под эгидой Qt на такое способен. Возможно, он даже единственный.

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

С кодировками не понял. Теперь нельзя открыть файлы с русским именем файла в Windows? Невозможно прочитать содержимое файла в однобайтовой кодировке в строку и преобразовать в UTF-8?

Xintrea ★★★★★ ()
Ответ на: комментарий от I-Love-Microsoft

Да не, симейк вообще хорошо скейлится. Посмотри на тот же ллвм (и это без зависимостей (ну почти: zlib, z3, ffi, libedit), с симейк конфигами можно нагружать сильно дальше).

Stil ★★★★★ ()

По сравнению с react-native это выглядит как манна небесная!

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

Qt очень активно используется в Enterprise. И особенно активно для клепания интерфейсов под современные автомобили. KDE используется от сила на каком-то там проценте от 1%. Выводы кто на ком стоял сам сделаешь?

https://developex.com/blog/wp-content/uploads/2018/12/qt-for-automotive7.jpg

EXL ★★★★★ ()

стэк

Товарищи, не все слова созвучны словарю. Настоящие писатели, даже технические описатели и просто графоманы, должны это отчётливо понимать. Также, как и помнить про букву Ё. Извините )

PS бэкэнд - конец зада?

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

@rumgot:

А можно тут подробнее?

@Xintrea:

С кодировками не понял. Теперь нельзя открыть файлы с русским именем файла в Windows? Невозможно прочитать содержимое файла в однобайтовой кодировке в строку и преобразовать в UTF-8?

@LongLiveUbuntu:

Что там с QString? Всё совсем плохо?

Так я сам это уточняю у @hobbit, в моём посте его цитата.

Тут наверное надо читать и разбираться:

https://lists.qt-project.org/pipermail/development/2020-May/039455.html

У меня вникать пока нет особого времени. Кто прояснит ситуацию с кодировками QString в Qt 6 здесь, тому с полки пирожок.

EXL ★★★★★ ()
Последнее исправление: EXL (всего исправлений: 1)
Ответ на: комментарий от I-Love-Microsoft

Собираюсь попробовать Qt MCU, а ранее пробовал uPython

А разве Qt MCU это опенсорсно?

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

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

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

Теперь нельзя открыть файлы с русским именем файла в Windows?

Это, слава богу, можно.

Невозможно прочитать содержимое файла в однобайтовой кодировке в строку и преобразовать в UTF-8?

А вот с этим беда. В старых Qt был класс QTextCodec, поддерживающий кучу кодировок. Теперь его убили (*) и сделали вместо него два класса (кодер и декодер), которые поддерживают только разные разновидности юникода.

И вот теперь думай, как переносить свой проект, который всё это использовал, на Qt6. То ли урезать функциональность, то ли пилить велосипед с затаскиванием в программу iconv.

(*) Если из той темы перейти по первой ссылке на багтрекер, речь идёт о переносе QTextCodec в некий модуль Qt5Compat. Уже из названия понятно, что это времянка.

hobbit ★★★★★ ()
Последнее исправление: hobbit (всего исправлений: 2)
Ответ на: комментарий от I-Love-Microsoft

Не мало, согласен, но когда пытаются .net Java Lua uPython или даже JS запихнуть во что-то крошечное, совсем мало не выходит. Сабж в STM32 в некоторый уже залезет, а если туда SDRAM подключить

Java, кстати, в SIM-картах и SMART-картах вполне себе работала. Подмножество, конечно, https://ru.wikipedia.org/wiki/Java_Card

EXL ★★★★★ ()

Поддержка HiDPI

Автору новости незачёт и на пересдачу.

Fractal scaling support allows for automatic UI scaling for different monitor configurations.

Удивительно, но дробное масштабирование и поддержка HiDPI — не одно и то же.

AP ★★★★★ ()
Ответ на: комментарий от I-Love-Microsoft

Собираюсь попробовать Qt MCU

Приятно видеть на linux.org.ru людей, которые считают нормальным платить за инструменты.

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

Где буква Ё и так русскоязычные помнят. Это вот иностранцам тяжело с этим. Но ничего, им в английском надо запоминать, что OO это U. Бэкэнд это конец сзади. Выглядит ужасно, но на этом работает куча сайтов например. Морда у них одна, а все что внутри это бакенд. В общем конец сзади у тех, кто это придумал.

anonymous ()

Благая весть. Недавно начал осваивать Qt для своего пет-проекта на питоне и понравилось.

kogoth ()

Слава царю этой страны, qt становится ближе к полному utf8, правда я слышал остались такие рептилоиды с планеты нибиру, которые кодируют данные в ascii.

bhfq ★★★★★ ()

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

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

... даже JS запихнуть во что-то крошечное...

Java, кстати, в SIM-картах и SMART-картах вполне себе работала

А ничего, что у Java нет ничего общего с JS?

https://ru.wikipedia.org/wiki/JavaScript#JavaScript_и_Java

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

... .net Java Lua uPython или даже JS ...

Упс, жабу-то в списке я пропустил.

Сорян.

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

В старых Qt был класс QTextCodec, поддерживающий кучу кодировок. Теперь его убили (*)

По ссылкам не очень понятно, его удалили или перенесли в другой модуль?

rumgot ★★★★★ ()

Состоялся релиз фреймворка Qt 6

Поздравляю всех «причастных» и желаю, чтобы QT 60 создавал за вас программу «с ваших слов».

Владимир

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

и желаю, чтобы QT 60 создавал за вас программу «с ваших слов».

Это если они до тот версии все нужное не выкинут.

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

А можно тут подробнее?

Класс QTextCodec убрали, а вместе с ним и поддержку всех кодировок кроме UTF*. Точнее перенесли в QtCompat и объявили deprecared. Так что теперь только поверх iconv сооружать костыли.

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

По ссылкам не очень понятно, его удалили или перенесли в другой модуль?

Насколько я понял, это оно:

https://code.qt.io/cgit/qt/qt5compat.git/tree/src/core5/codecs

Но я не в курсе, это полнофункциональный QTextCodec из Qt4/5 или unicode-only враппер к новым классам. Тут тыкать надо.

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

Кстати, о птичках. Раньше можно было скачать тарболл qt-everywhere-opensource-src-X.X.X, распаковать его и собрать Qt определённой версии. Я для статической сборки под винду даже мини-инструкции писал (под линукс меня и Qt из линуксовых реп устраивала).

Как это сейчас сделать с гитом — я не очень понимаю. Нет, в общем случае понятно, что надо склонировать часть реп отсюда, как-то их расположить в дереве каталогов друг относительно друга и получим то же самое дерево для сборки. А вот какие репы брать (часть из них явно взаимоисключающая) и как располагать — хотелось бы найти какой-нибудь мануал.

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

А что через git доступны все новые версии? Там же была инфа, что только для комерческих лицензий. Или исходный код доступен для всех в полном объеме?

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

Как раз через гит всё доступно, сходи же по ссылке, ну.

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

Qt6 одним архивом

Инструкция по сборке Qt5 из git (это я уже сам себе отвечаю, получается).

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

Учи язык. В данном морфологическам контексте back это прилагательное, то есть «задний». Да и у end есть другие значения, в частности «сторона» или «часть».

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

А что через git доступны все новые версии? Там же была инфа, что только для комерческих лицензий. Или исходный код доступен для всех в полном объеме?

Новые версии все доступны, про это речи и не было. Для коммерческих версий, LTS релизы.

fsb4000 ★★★★ ()

Ещё для коммерсов у них теперь есть

The Qt for Small Business license is a full Qt license for embedded, desktop, and mobile software development, at only $499 per year.

Украдено отсюда

По мне так всё равно не очень гибко, я уже писал про Visual Paradigm, на который я могу оформить квартальную подписку за сущие копейки. Кутешникам бы сделать ещё какую-нибудь лицензию для инди-разработчиков…

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