Рэліз фрэймворка Qt 5.15

Прадстаўлены рэліз кросплатформавага фрэймворка Qt 5.15. Зыходныя тэксты кампанентаў Qt пастаўляюцца пад ліцэнзіямі LGPLv3 і GPLv2. У снежні будзе апублікавана новая галінка Qt 6, у якой чакаюцца значныя архітэктурныя змены. Для згладжвання будучага пераходу на галінку Qt 6 у Qt 5.15 уключаны папярэднія рэалізацыі некаторых навін і дададзены папярэджанні аб хуткім спыненні падтрымкі функцыянальнасці, вызначанай для выдалення ў Qt 6.

Qt 5.15 аднесены да выпускаў з працяглым тэрмінам падтрымкі (LTS). Пры гэтым для суполкі абнаўлення галіны 5.15. будуць публікавацца толькі да фармавання чарговага значнага выпуску, г.зн. прыкладна паўгода. Пашыраны LTS-цыкл, які разумее фармаванне абнаўленняў на працягу трох гадоў, будзе абмежаваны карыстачамі з камерцыйнай ліцэнзіяй (для звычайных кампаній – $ 5508 у год на аднаго распрацоўніка, а для стартапаў і малых прадпрыемстваў – $ 499 у год). Кампанія Qt Company таксама разглядала магчымасць пераходу на мадэль распаўсюджвання Qt, пры якой усе выпускі на працягу першых 12 месяцаў будуць распаўсюджвацца толькі для карыстачоў камерцыйных ліцэнзій. Але пакуль гэта ідэя не пайшла далей абмеркавання.

Асноўныя навіны Qt 5.15:

  • Прадоўжана праца па стварэнні абстрагаванага графічнага API, не які залежыць ад 3D API аперацыйнай сістэмы. Ключавым кампанентам новага графічнага стэка Qt з'яўляецца рухавічок рэндэрынгу сцэн, які выкарыстоўвае праслойку RHI (Rendering Hardware Interface) для забеспячэння працы прыкладанняў Qt Quick не толькі з OpenGL, але і па-над API Vulkan, Metal і Direct 3D. У 5.15 новы графічны стэк прапанаваны ў форме опцыі, якая мае статус "Technology Preview".
  • Забяспечана поўная падтрымка модуля Qt Quick 3D, з якога знята прыкмета эксперыментальнай распрацоўкі. Qt Quick 3D дае уніфікаваны API для стварэння інтэрфейсаў карыстальніка на базе Qt Quick, якія спалучаюць элементы 2D і 3D графікі. Новы API дазваляе выкарыстоўваць QML для вызначэння 3D-элементаў інтэрфейсаў без задзейнічання фармату UIP. У Qt Quick 3D для 2D і 3D можна выкарыстоўваць адзін runtime (Qt Quick), адзін макет сцэны і адзін анімацыйны фрэймворк, а для візуальнай распрацоўкі інтэрфейсу прымяняць Qt Design Studio. Модуль вырашае такія праблемы, як вялікія накладныя выдаткі пры інтэграцыі QML з кантэнтам з Qt 3D ці 3D Studio, і дае магчымасць сінхранізацыі анімацыі і пераўтварэнняў на ўзроўні асобных кадраў паміж 2D і 3D.

    З дададзеных у Qt Quick 3D новых магчымасцяў згадваецца падтрымка эфектаў постпрацэсінгу, C++ API для кіравання геаметрыяй, API для кручэння, заснаваны на класе QQuaternion, і падтрымка кропкавых крыніц святла. Для адзнакі розных магчымасцяў Qt Quick 3D падрыхтавана спецыяльны дэманстрацыйны дадатак, які паказвае як можна змяняць тыпы і крыніцы асвятлення, выкарыстоўваць складаныя мадэлі, маніпуляваць тэкстурамі, матэрыяламі і згладжваннем. Адначасова прапанаваны выпуск акружэння для праектавання інтэрфейсу карыстальніка Qt Design Studio 1.5, у якім рэалізавана поўная падтрымка Qt Quick 3D.


  • У Qt QML праца была сканцэнтравана на падрыхтоўцы да Qt 6. Рэалізаваная магчымасць ужывання ў кампанентах уласцівасцяў з прыкметай 'required', усталёўка якіх абавязковая. Ва ўтыліце qmllint палепшана фармаванне папярэджанняў аб магчымых праблемах у QML-кодзе. Дададзена ўтыліта qmlformat, якая спрашчае фарматаванне QML-кода ў адпаведнасці з рэкамендацыямі па стылі кадавання. Забяспечана сумяшчальнасць QML з рэдакцыяй Qt для мікракантролераў.
  • У Qt Quick у элемент Image дададзена падтрымка каляровых прастор. У Qt Quick Shapes дададзены новы элемент PathText.
    У апрацоўшчык паказальніка дададзена ўласцівасць cursorShape, праз якое можна змяніць форму курсора мышы на настольных сістэмах. Дададзены элемент HeaderView для спрашчэння дадання вертыкальных і гарызантальных загалоўкаў у табліцы на аснове TableView.

  • Значна палепшана падтрымка дэкарыравання вокнаў на баку кліента (CSD), якая дазваляе з дадаткам вызначыць уласныя элементы афармлення вокнаў і размясціць адвольнае змесціва ў загалоўку акна.
  • Стабілізаваны модуль Qt Lottie, які прадстаўляе пашыраны API для QML, які дазваляе адмалёўваць графіку і анімацыю, экспартаваную ў фармаце JSON пры дапамозе плагіна Bodymovin да пакета Adobe After Effects. Дзякуючы QtLottie дызайнер можа падрыхтаваць анімацыйныя эфекты ў зручным для сябе дадатку, а распрацоўшчык напрамую падключыць экспартаваныя файлы да інтэрфейсу прыкладанняў на QtQuick. QtLottie уключае ў сябе ўбудаваны мікрарухавічок для выканання анімацыі, абрэзкі, апрацоўкі пластоў і іншых эфектаў. Рухавічок даступны праз QML-элемент LottieAnimation, якім можна кіраваць з QML-кода па аналогіі з любымі іншымі элементамі QtQuick.
  • Браўзэрны рухавічок Qt WebEngine абноўлены да кодавай базы хром 80 (у галінцы 5.14 выкарыстоўваўся Chromium 77, актуальнай версіяй з'яўляецца хром 83).
  • У модулі Qt 3D палепшаны сродкі прафілявання і адладкі.
  • У Qt Multimedia дададзена падтрымка адмалёўкі ў некалькі паверхняў.
  • У Qt GUI аперацыі маштабавання і пераўтварэнні малюнкаў зараз у шматлікіх выпадках выконваюцца ў шматструменным рэжыме.
  • У Qt Network дададзена падтрымка наладжвальных таймаўтаў і сесійных ярлыкоў у TLS 1.3 (Session Ticket, дазваляюць аднавіць сеанс без захавання стану на боку сервера).
  • Забяспечана магчымасць працы Qt Core, QRunnable і QThreadPool з std::function. Дададзены новы метад QFile::moveToTrash() для перасоўвання элементаў у кошык з улікам спецыфікі розных платформаў.
  • У Qt для Android дададзена падтрымка родных дыялогаў для адкрыцця і захаванні файлаў.

Крыніца: opennet.ru

Дадаць каментар