Рэліз фрэймворка Qt 6.7 і асяроддзі распрацоўкі Qt Creator 13

Кампанія Qt Company апублікавала рэліз фрэймворка Qt 6.7, у якім працягнутая праца па стабілізацыі і нарошчванню функцыянальнасці галінкі Qt 6. У Qt 6.7 забяспечана падтрымка платформаў Windows 10+, macOS 12+, Linux (Ubuntu 22.04, openSUSE 15.5. /15, Debian 5), iOS 8.8+, Android 9.2+ (API 11.6+), webOS, WebAssembly, INTEGRITY, VxWorks, FreeRTOS і QNX. Зыходныя тэксты кампанентаў Qt пастаўляюцца пад ліцэнзіямі LGPLv16 і GPLv8.

Асноўныя змены ў Qt 6.7:

  • Палепшана падтрымка выкарыстання кода, у якім ужываюцца элементы стандарту C++20. Дададзены класы Qt::{strong,weak,partial}_ordering з рэалізацыяй тыпаў std::*_ordering, сумяшчальных са спецыфікацыяй C++17, а таксама макрасы, якія расчыняюцца ў аператар трохбаковага параўнання «» пры зборцы кампілятарамі, якія падтрымліваюць C++ 20 (калі кампілятар падтрымлівае толькі C++17, макрасы адкочваюцца на выкарыстанне звычайных аператараў).

    Дадзена магчымасць выкарыстання шаблону класа std::span для прадстаўлення бесперапыннай паслядоўнасці аб'ектаў, які для сістэм з C++17 замяняецца на клас QSpan. Прадоўжана работа па рэалізацыі падтрымкі бібліятэкі std::chrono у розных API Qt. Напрыклад, таймаўты ў API Qt Network зараз апісваюцца з выкарыстаннем тыпаў std::chrono і задаюцца ў форме літаралаў, такіх як "5s" для пазначэння 5 секунд.

  • Прадоўжана развіццё эксперыментальнага модуля Qt Graphs, прызначанага для пабудовы розных відаў графікаў і візуалізацыі вялікіх калекцый хутка якія змяняюцца дадзеных. Модуль развіваецца як універсальная замена старога модуля Qt DataVisualization, завязанага на OpenGL, і модуля Qt Charts. Новы модуль выкарыстоўвае Qt Quick 3D і рухавічок рэндэрынгу RHI (Rendering Hardware Interface), які падтрымлівае розныя 3D API (OpenGL, Vulkan, Metal і Direct 3D). У новай версіі ў дадатак да 3D-візуалізацыі дададзена падтрымка двухмерных кругавых і лінейных графікаў, а таксама дыяграм рассейвання. Забяспечана інтэграцыя з даступнымі ў Qt Quick сродкамі анімацыі і эфектамі. Дададзена падтрымка тэм афармлення. Праведзена мадэрнізацыя архітэктуры, якая дазволіла знізіць колькасць аперацый выдзялення памяці.
    Рэліз фрэймворка Qt 6.7 і асяроддзі распрацоўкі Qt Creator 13
  • Дададзены новыя класы QHttpHeaders, QNetworkRequestFactory, QRestAccessManager і QRestReply для распрацоўкі кліенцкіх прыкладанняў, якія выкарыстоўваюць API на базе HTTP і архітэктуры REST (REpresentational State Transfer).
  • Пашыраны магчымасці модуля Qt GRPC, які дазваляе звяртацца да сэрвісаў gRPC. У Qt gRPC дададзены новыя класы для кліенцкіх, серверных і двунакіраваных струменевых выклікаў, якія дазваляюць арганізаваць абмен паведамленнямі з аўтаматычнай актывацыяй пры змене значэнняў. Прапанаваны API Interceptor для прымацавання callback-апрацоўшчыкаў для абраных паведамленняў gRPC, якія можна выкарыстоўваць, напрыклад, для арганізацыі часопісавання ці кэшавання.
  • У модуль Qt Protobuf, прызначаны для выканання серыялізацыі Qt-класаў, выкарыстоўваючы пратакол Protocol Buffer, дададзена магчымасць серыялізацыі ў фармат JSON ці з яго.
  • У модуль вектарнай графікі Qt SVG дададзеная падтрымка элементаў SVG 1.1 і 2.0, часта выкарыстоўваных у SVG-малюнках на практыцы ( , , , і ), што дазваляе адлюстроўваць большасць SVG-файлаў. Для тых каму неабходна поўная падтрымка SVG 2.0 прапануецца выкарыстоўваць модуль Qt WebEngine. Дададзена ўтыліта svgtoqml для пераўтварэння SVG у QML для імпарту вектарнай графікі напрамую ў граф сцэны Qt Quick. Стабілізавана магчымасць выкарыстання модуля Qt Quick Shapes для высакаякаснай адмалёўкі крывых пры дапамозе фрагментнага шэйдара.
  • Дададзена падтрымка варыятыўных шрыфтоў, у якіх таўшчыня, шырыня і іншыя стылістычныя характарыстыкі гліфа могуць адвольна мяняцца. Дададзена падтрымка бібліятэк піктаграм. Пры выкарыстанні выкліку QIcon::fromTheme рэалізавана магчымасць супастаўлення імя піктаграмы з сімвалам у бібліятэцы піктаграм.
  • Дадзена магчымасць убудавання родных для бягучай платформы вокнаў у сцэну Qt Quick, што дазваляе задзейнічаць у інтэрфейсе на базе Qt Quick элементы інтэрфейсу, якія прадстаўляюцца платформай, напрыклад, можна ўбудаваць AppKit MapView або Windows Media player.
    Рэліз фрэймворка Qt 6.7 і асяроддзі распрацоўкі Qt Creator 13
  • Дададзена падтрымка дадання ў прыкладанні на базе Qt Quick або Qt Widgets кода адмалёўкі, які выкарыстоўвае любы які падтрымліваецца ў Qt графічны API (Vulkan, OpenGL, Direct3D, Metal). Даданне робіцца пры дапамозе класаў QRhiQuickItem і QRhiWidget.
  • Забяспечана поўная падтрымка платформаў macOS 14, iOS 17, Windows 11 23H2, Android 14, RHEL 9.2, openSUSE 15.5/15, SUSE Linux Enterprise Server 7. Дададзеныя зборкі для Windows, сабраныя пры дапамозе інструментара MinGW на базе LLVM. Дададзены папярэднія зборкі для архітэктуры ARM (для Windows і Linux), для платформы VxWorks 7.1 і для QNX XNUMX.
  • Абноўлены стэк Boot2Qt, які можа выкарыстоўвацца для стварэння загружаных мабільных сістэм з асяроддзем на базе Qt і QML. Сістэмнае асяроддзе ў Boot2Qt абноўлена да платформы Yocto 4.3.
  • Дададзены новыя прыклады прыкладанняў. Прыклад Lightning Viewer, які выкарыстоўвае Qt Location і Qt Quick Controls для нагляднай візуалізацыі дадзеных аб навальніцах на мапе. Новая дэманстрацыя OSM Buildings, якая выкарыстоўвае Qt Quick 3D, Qt Positioning і Qt Network для стварэння 3D-карты будынкаў на аснове інфармацыі з OpenStreetMap. У прыкладзе Virtual Assistant прадэманстраваны магчымасці па працы з 3D-анімацыяй. У прыкладзе Volumetric rendering паказана выкарыстанне 3D-тэкстуры ў Qt Quick 3D для аб'ёмнай трасіроўкі прамянёў. Цалкам перароблены прыклад StocQt, які выкарыстоўвае Qt Graphs для паказу дадзеных аб біржавых каціроўках.
    Рэліз фрэймворка Qt 6.7 і асяроддзі распрацоўкі Qt Creator 13

Дадаткова можна адзначыць публікацыю інтэграванага асяроддзя распрацоўкі Qt Creator 13.0, прызначанай для стварэння кросплатформавых прыкладанняў з выкарыстаннем бібліятэкі Qt. Падтрымліваецца як распрацоўка класічных праграм на мове C++, так і выкарыстанне мовы QML, у якім для вызначэння сцэнарыяў выкарыстоўваецца JavaScript, а структура і параметры элементаў інтэрфейсу задаюцца CSS-падобнымі блокамі. Гатовыя зборкі сфарміраваны для Linux, Windows і maсOS.

У новай версіі:

  • Дададзеныя offline-і online-усталёўнікі для ARM-сістэм з Linux.
  • Абноўлена афармленне інтэрфейсу Welcome to Qt Creator, у якім з'явілася падтрымка цёмных і светлых тэм.
    Рэліз фрэймворка Qt 6.7 і асяроддзі распрацоўкі Qt Creator 13
  • Палепшаны інтэрфейс для перасоўвання панэляў, які ўжываецца ў рэжыме адладкі і стварэнні віджэтаў (Widget Designer). Для вертыкальных панэляў дададзена падтрымка часавага згортвання. Прадастаўлена магчымасць свабоднага перамяшчэння панэляў за іх загаловак без папярэдняга адключэння замацавання.
    Рэліз фрэймворка Qt 6.7 і асяроддзі распрацоўкі Qt Creator 13
  • Дададзена падтрымка стварэння, разгортванні, запуску і адладкі прыкладанняў для прылад, на якіх выкарыстоўваецца Qt Application Manager (для прыкладанняў на базе Qt 6 і CMake).
  • Дададзена частковая падтрымка iOS 17.
  • Зменены зборачны каталог па змаўчанні, для якога зараз выкарыстоўваецца падкаталог "build" у кодзе праекта. Змяніць зборачны каталог можна пры дапамозе налады "Preferences > Build & Run > Default Build Properties > Default build directory".
  • У рэжыме праекта дададзена секцыя «Vanished targets», у якой адлюстроўваюцца kit-наборы (прывязкі да розных зборачных інструментарыяў і версій Qt), якія ўжо недаступныя, і даецца магчымасць стварэння замены або выкарыстання пры зборцы, разгортванні і запуску іншага існуючага kit-набору.
  • Дадзена магчымасць стварэння kit-набораў для праектаў на мове Python (для выбару іншай версіі інтэрпрэтатара).
  • Дададзена магчымасць выкарыстання сервераў LSP (Language Server Protocol) для YAML, JSON і Bash.
  • У рэдактары кода забяспечана падтрымка пераходу з кампанентаў QML да злучанага з імі коду на C++.
  • Праведзена рэарганізацыя налад ClangFormat. Для змены ўласных настроек прадстаўлены тэкставы рэдактар ​​параметраў з праверкай сінтаксісу.
    Рэліз фрэймворка Qt 6.7 і асяроддзі распрацоўкі Qt Creator 13

Крыніца: opennet.ru

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