Даступная альфа-версія Qt 6.0

Кампанія Qt Company абвясціла аб перакладзе галінкі Qt 6 на стадыю альфа-тэставанні. Qt 6 уключае значныя архітэктурныя змены, а для зборкі патрабуецца кампілятар, які падтрымлівае стандарт C++17. Рэліз намечаны на 1 снежня 2020 гады.

ключавыя асаблівасці Qt 6:

  • Абстрагаваны графічны API, не які залежыць ад 3D API аперацыйнай сістэмы. Ключавым кампанентам новага графічнага стэка Qt з'яўляецца рухавічок рэндэрынгу сцэн, які выкарыстоўвае праслойку RHI (Rendering Hardware Interface) для забеспячэння працы прыкладанняў Qt Quick не толькі з OpenGL, але і па-над API Vulkan, Metal і Direct 3D.
  • Модуль Qt Quick 3D з API для стварэння інтэрфейсаў карыстача на базе Qt Quick, якія спалучаюць элементы 2D і 3D графікі. Qt Quick 3D дазваляе выкарыстоўваць QML для вызначэння 3D-элементаў інтэрфейсаў без задзейнічання фармату UIP. У Qt Quick 3D для 2D і 3D можна выкарыстоўваць адзін runtime (Qt Quick), адзін макет сцэны і адзін анімацыйны фрэймворк, а для візуальнай распрацоўкі інтэрфейсу прымяняць Qt Design Studio. Модуль вырашае такія праблемы, як вялікія накладныя выдаткі пры інтэграцыі QML з кантэнтам з Qt 3D ці 3D Studio, і дае магчымасць сінхранізацыі анімацыі і пераўтварэнняў на ўзроўні асобных кадраў паміж 2D і 3D.
  • Рэструктурызацыя кодавай базы з разбіццём на драбнейшыя складовыя часткі і скарачэннем памеру базавага прадукта. Інструменты для распрацоўшчыкаў і спецыялізаваныя кампаненты будуць пастаўляцца ў выглядзе дапаўненняў, якія распаўсюджваюцца праз каталог-краму Qt Marketplace.
  • Істотная мадэрнізацыя QML:
    • Падтрымка строгай тыпізацыі.
    • Магчымасць кампіляцыі QML ва ўяўленне на C++ і машынны код.
    • Пераклад поўнай падтрымкі JavaScript у разрад опцый (выкарыстанне поўнафункцыянальнага JavaScript-рухавічка патрабуе вялікіх рэсурсаў, што замінае ўжыванню QML на такім абсталяванні, як мікракантролеры).
    • Адмова ад версіявання ў QML.
    • Уніфікацыя структур дадзеных, якія дублююцца ў QObject і QML (дазволіць скараціць спажыванне памяці і паскорыць запуск).
    • Сыход ад генерацыі структур дадзеных падчас выканання на карысць генерацыі падчас кампіляцыі.
    • Утойванне ўнутраных кампанентаў праз выкарыстанне прыватных метадаў і ўласцівасцяў.
    • Палепшаная інтэграцыя з інструментамі распрацоўкі для рэфактарынгу і дыягностыкі памылак падчас кампіляцыі.
  • Даданне інструментаў для апрацоўкі звязаных з графікай рэсурсаў на этапе кампіляцыі, напрыклад, для пераўтварэння PNG-малюнкаў у сціснутыя тэкстуры або для канвертавання шэйдараў і мешей у аптымізаваныя бінарныя фарматы для канкрэтнага абсталявання.
  • Убудаванне ўніфікаванага рухавічка для тэм афармлення і стыляў, які дазваляе дамагчыся вонкавага выгляду прыкладанняў на базе Qt Widgets і Qt Quick, роднага для розных мабільных і настольных платформаў.
  • У якасці сістэмы зборкі вырашана выкарыстоўваць CMake замест QMake. Падтрымка зборкі прыкладанняў пры дапамозе QMake будзе захавана, але сам Qt будзе збірацца з выкарыстаннем CMake. CMake абраны, бо дадзены інструментар атрымаў шырокі распаўсюд у асяроддзі распрацоўнікаў праектаў на C++ і падтрымліваецца ў шматлікіх інтэграваных асяроддзях распрацоўкі. Распрацоўка зборачнай сістэмы Qbs, якая прэтэндавала на ролю замены QMake, працягнута супольнасцю.
  • Пераход пры распрацоўцы на стандарт C++17 (раней выкарыстоўваўся C++98). У Qt 6 плануюць рэалізаваць падтрымку шматлікіх сучасных магчымасцяў C++, але без страты зваротнай сумяшчальнасці з кодам на аснове мінулых стандартаў.
  • Магчымасць выкарыстання ў кодзе на C++ некаторай функцыянальнасці, прапанаванай для QML і Qt Quick. У тым ліку будзе прадстаўлена новая сістэма ўласцівасцяў для QObject і падобных класаў. З QML у ядро ​​Qt будзе інтэграваны рухавічок для працы з прывязкамі (binding), што дазволіць зменшыць нагрузку і спажыванне памяці для біндзінгаў і зрабіць іх даступнымі для ўсіх частак Qt, а не толькі для Qt Quick.
  • Пашырэнне падтрымкі дадатковых моў, такіх як Python і WebAssembly.
  • Крыніца: opennet.ru

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