Харитаи роҳ барои функсияҳои Qt 6 нашр шуд

Ларс Нолл, созандаи муҳаррики KHTML, менеҷери лоиҳаи лоиҳаи Qt ва директори техникии ширкати Qt, гуфт дар бораи нақшаҳои сохтани шохаи муҳими навбатии чаҳорчӯбаи Qt. Пас аз ба итмом расидани фаъолияти филиали Qt 5.14, рушд ба омодагӣ ба нашри Qt 6, ки дар охири соли 2020 интизор аст, тамаркуз хоҳад кард.

Qt 6 бо мақсади таъмини мутобиқат бо Qt 5 таҳия карда мешавад, аммо мушкилоти инфиродӣ метавонанд ба миён оянд, зеро тағиротҳои банақшагирифтаи меъморӣ ва тозакунӣ бидуни аз даст додани сатҳи муайяни мутобиқат имконнопазиранд. Барои ҳамвор кардани гузариш, ба нақша гирифта шудааст, ки баъзе хусусиятҳои Qt 6 ба шакли камшуда ҳамчун як қисми релизҳои Qt 5.14 ва Qt 5.15 LTS дохил карда шаванд. Асбобҳо инчунин барои содда кардани муҳоҷират ба Qt 6 омода карда мешаванд.

Дар байни ҳадафҳои асосии филиали муҳими навбатӣ мутобиқ кардани функсияҳо ба талаботи соли 2020, тоза кардани пойгоҳи код ва содда кардани нигоҳдории лоиҳа мебошанд. Тағироти интизорӣ:

  • Модернизатсияи назарраси QML:
    • Дастгирии пурқуввати чопкунӣ.
    • Қобилияти тартиб додани QML ба намояндагии C ++ ва рамзи мошин.
    • Гузаронидани дастгирии пурраи JavaScript як вариант (истифодаи муҳаррики мукаммали JavaScript захираҳои зиёдеро талаб мекунад, ки истифодаи QML-ро дар таҷҳизот ба монанди микроконтроллерҳо пешгирӣ мекунад).
    • Рад кардани нусхабардорӣ дар QML.
    • Муттаҳидсозии сохторҳои додаҳои дар QObject ва QML такроршуда (масрафи хотираро коҳиш медиҳад ва оғозро суръат мебахшад).
    • Гузариш аз тавлиди вақти кории сохторҳои додаҳо ба фоидаи тавлиди вақти компиляция.
    • Пинҳон кардани ҷузъҳои дохилӣ тавассути истифодаи усулҳо ва хосиятҳои хусусӣ.
    • Мукаммалгардонии ҳамгироӣ бо абзорҳои таҳия барои рефакторинг ва ташхиси хатогиҳои компилятсионӣ;
  • Илова кардани қабати нави абстрактӣ, Interface Rendering Hardware (RHI) барои таъмини истифодаи бефосилаи API-ҳои гуногуни графикӣ, аз ҷумла OpenGL, Vulkan, Metal ва Direct 3D (қаблан Qt танҳо OpenGL буд). Ҳама инфрасохтори мавҷудаи намоишдиҳӣ ба истифодаи RHI, аз ҷумла QPainter, Qt Quick Scenegraph ва Qt3D табдил дода мешаванд. Инчунин илова кардани модули Qt Shader Tools барои дастгирии забонҳои гуногуни таҳияи shader ва таъмин намудани маҷмӯи байнисоҳаҳои шейдерҳо ҳам дар марҳилаи сохтмон ва ҳам дар вақти корӣ ба нақша гирифта шудааст;
  • Омода кардани API-и ягона барои эҷоди интерфейсҳои корбар, ки унсурҳои графикаи 2D ва 3D-ро муттаҳид мекунанд. API-и нав ба шумо имкон медиҳад, ки QML-ро барои муайян кардани унсурҳои интерфейси 3D бидуни истифодаи формати UIP истифода баред. Интерфейси нав барои ҳамгироии мундариҷаи 3D бо Qt Quick ҳалли мушкилотро ба мисли хароҷоти баланди ҳамгироии QML бо мундариҷаи Qt 3D ё 3D Studio ва имконнопазирии ҳамоҳангсозии аниматсияҳо ва тағирот дар сатҳи чаҳорчӯба байни 2D ва 3D. Намоиши якҷояи 2D ва 3D бо истифода аз муҳаррики нави рендеринг амалӣ карда мешавад. Дар нашри Qt 3 пешнамоиши Qt Quick бо дастгирии 5.14D интизор аст;
  • Илова кардани абзорҳо барои коркарди дороиҳои марбут ба графика дар вақти тартибдиҳӣ, ба монанди табдил додани тасвирҳои PNG ба матнҳои фишурда ё табдил додани шейдерҳо ва торҳо ба форматҳои оптимизатсияшудаи дуӣ барои сахтафзори мушаххас;
  • Ҷойгиркунии як муҳаррики ягона барои мавзӯъҳо ва услубҳо, ки ба шумо имкон медиҳад, ки намуди барномаҳоро дар асоси Qt Widgets ва Qt Quick, ки дар платформаҳои гуногуни мобилӣ ва мизи корӣ тавлид мешаванд, ба даст оред;
  • Якҷоякунии асбобҳо барои эҷоди интерфейси корбар. Барои роҳ надодан ба такрори функсияҳо ва қатъи таҳвили ду маҳсулоти алоҳида, интизор меравад, ки функсияҳои Qt 3D Studio ба Qt Design Studio ҳамроҳ карда шаванд, ки бисёре аз зерсистемаҳо ва чаҳорчӯбаи пайваст кардани плагинҳо дар як пойгоҳи рамзӣ сохта шудаанд. Qt Офаридгор.
    Qt Design Studio инчунин нақша дорад, ки ҳамгироии баландсифатро бо бастаҳои эҷоди мундариҷа ба монанди Photoshop, Sketch, Illustrator, Maya ва 3D Max таъмин кунад. Забонҳои асосие, ки дар маҷмӯаи ягонаи рушд дастгирӣ мешаванд, C++, QML ва Python мебошанд. Муттаҳидшавӣ инчунин маънои қобилияти дастрасӣ ба асбобҳои тарроҳии интерфейсро аз Qt Creator дорад ва тарроҳони интерфейсро бо қобилиятҳо аз абзорҳои таҳиякунанда таъмин мекунанд, масалан, тартиб додани лоиҳа ё санҷиши барнома дар дастгоҳ;

  • Қарор дода шуд, ки CMake ба ҷои QMake ҳамчун системаи сохтмон истифода шавад. Дастгирии сохтани замимаҳо бо истифода аз QMake боқӣ мемонад, аммо худи Qt бо истифода аз CMake сохта мешавад. CMake барои он интихоб карда шуд, ки ин абзор дар байни таҳиягарони лоиҳаи C++ васеъ истифода мешавад ва дар бисёр муҳитҳои ҳамгирошудаи рушд дастгирӣ мешавад. Таҳияи системаи васлкунии Qbs, ки даъвои ивазкунандаи QMake буд, қатъ карда шуд;
  • Гузариш ба стандарти C++17 ҳангоми таҳия (қаблан C++98 истифода мешуд). Qt 6 нақша дорад, ки дастгирии бисёр хусусиятҳои муосири C++-ро амалӣ созад, аммо бидуни аз даст додани мутобиқати ақиб бо код дар асоси стандартҳои меросӣ.
  • Имконияти истифода аз C ++ баъзе аз функсияҳое, ки барои QML ва Qt Quick пешниҳод шудаанд. Аз ҷумла, системаи моликияти нави QObject ва синфҳои шабеҳ пешниҳод карда мешавад. Муҳаррик барои кор бо пайвандҳо аз QML ба асосии Qt муттаҳид карда мешавад, ки сарборӣ ва истеъмоли хотираро барои пайвандҳо коҳиш медиҳад ва онҳоро барои ҳама қисмҳои Qt дастрас мекунад, на танҳо Qt Quick;
  • Идомаи кор барои тавсеаи дастгирии забонҳои иловагӣ ба монанди Python ва WebAssembly;
  • Таҷдиди сохтор тавассути тақсим кардани ҷузъҳои хурдтар ва кам кардани андозаи маҳсулоти аслӣ. Асбобҳои таҳиякунанда ва ҷузъҳои фармоишӣ ҳамчун замимаҳо тавассути мағозаи нави каталог тақсим карда мешаванд. Иловаҳо ба Qt аз таҳиягарони тарафи сеюм, ҳам ройгон ва ҳам пулакӣ, инчунин барои паҳнкунӣ қабул карда мешаванд.

Манбаъ: opennet.ru

Илова Эзоҳ