Qt Company առաջին թեստային թողարկումն նոր Qt 6 ճյուղի, որտեղ կը առաջարկվեն նշանակալի ճարտարապետական փոփոխություններ, և կառուցման համար անհրաժեշտ կլինի C++17 ստանդարտը աջակից կոմպիլատոր: Թողարկումը ընդգրկում է միայն ապագայի Qt 6 թողարկման սկզբնական շրջանակը, որը 2020 թվականի դեկտեմբերի 1-ին: Qt 6-ի ճյուղում ֆունկցիոնալությունը կնպաստվի անխափան կոդի բազայի սառեցման հայտարարությունից առաջ օգոստոսի 31-ին:
Սկզբնական թեստային կազմի մեջ մտնում են մոդուլները:
Qt Core,
Qt GUI,
Qt Widgets,
Qt Network,
Qt QML,
Qt Quick,
Qt Quick Controls,
Qt SVG,
Qt Network Authorization,
Qt SQL և
Qt Test.
Կարգավորիչ Qt 6:
- Աբստրակտ գրաֆիկական API, անկախ օպերացիոն համակարգի 3D API-ից: Qt նոր գրաֆիկական ստաքի հիմնական բաղադրիչն է պատկերացման շարժիչը, որը օգտագործում է RHI (Rendering Hardware Interface) միջնապատում` ապահովելու համար Qt Quick-ի ծրագրերի աշխատանքը ինչպես OpenGL, այնպես էլ Vulkan, Metal և Direct 3D API-ների վերևում:
- Qt Quick 3D մոդուլը API-ով, որը թույլ է տալիս ստեղծել օգտագործողի ինտերֆեյսներ Qt Quick հիման վրա, միացնելով 2D և 3D գրաֆիկայի տարրեր: Qt Quick 3D-ը հնարավորություն է տալիս օգտագործել QML 3D ինտերֆեյսի տարրերի սահմանման համար առանց UIP ձևաչափի ներգրավման: Qt Quick 3D-ի 2D և 3D-ի համար հնարավոր է օգտագործել մեկ runtime (Qt Quick), մեկ տեսարանային ձևավորում և մեկ անիմացիոն framerwok, իսկ ինտերֆեյսի տեսողական մշակման համար օգտագործել Qt Design Studio: Մոդուլը լուծում է այնպիսի խնդիրներ, ինչպիսիք են QML-ի հուսալիության բարձր ծախսերը Qt 3D կամ 3D Studio-ի բովանդակության ինտեգրացման ժամանակ և տրամադրում է 2D ու 3D-ի միջև անիմացիայի և վերափոխումների կրկնաժամկետային համաժամեցման հնարավորություն:
- Կոդի բազայի վերակազմավորման միջոցով փոքր բաղադրիչների բաժանում և հիմնական արտադրանքի չափի կրճատում: Developer-ների համար գործիքներն ու մասնագիտացված բաղադրիչները տրամադրվելու են հավելումների տեսքով, որոնք վաճառում են տեսակավորող տիրույթում: .
- QPML-ի զգալի մոդերացումը:
- Կոշտ տիպայնության աջակցություն:
- QPML-ի հնարավորությունը C++ և մեքենայական կոդի ներկայացման փուլներում:
- JavaScript-ի ամբողջական օժանդակության փոխարկումը որպես տարբերակ (բոլորակամ JavaScript շարժիչի կիրառումը մեծ ռեսուրսներ է պահանջում, որոնք խանգարում են QPML-ի կիրառումն այնպես սարքեր, ինչպիսիք են միկրո-հսկիչները):
- QPML-ի տարբերակավորման հրաժարում:
- Վերակենդանացվող տվյալների կառուցվածքների միաձուլում` QObject և QML-ի մեջ (անիրացնում է հիշողության սպառումը և արագավորում է մեկնարկը):
- Գեներացիայի հետքերը ժամանակի ընթացքում փոխել ամեն գնով մշակման ժամանակ, փոխելով ժամանակագրությանը:
- Ներքին բաղադրիչների քողարկում՝ մասնավոր մեթոդների և հատկությունների օգտագործմամբ:
- Վերականգնվածի և վերահսկման գործիքների ավելի լավ ինտեգրումը՝ կոմպիլացիայի ժամանակ սխալների հայտնաբերման համար:
- Գրաֆիկայի հետ կապված ռեսուրսների մշակման գործիքների ավելացում կոմպիլացիայի փուլում, ինչպես օրինակ PNG պատկերների խտացված տեքստուրաների վերածման կամ շեյդերների և Mesh-երի կոնվերտացման հատուկ սարքավորման համար օպտիմիզացված բինարային ֆորմատների:
- Միավորված շարժիչի ռազմական համակարգերի և ոճերի համար, որը թույլ է տալիս հասնել Qt Widgets և Qt Quick հիմնված ծրագրերի արտաքին տեսքին, որը բնորոշ է տարբեր շարժական և աշխատասեղանային պլատֆորմների:
- Բիլդ համակարգի համար որոշվել է օգտագործել CMake, այլ ոչ թե QMake: QMake-ի միջոցով ծրագրերի կառուցման աջակցությունը կպահպանվի, բայց Qt-ը տեղի է ունենում CMake-ով: CMake-ը ընտրվել է, քանի որ այս գործիքը լայն տարածում է գտել C++ նախագծերի մշակողների շրջանում և աջակցվում է բազմաթիվ ինտեգրված զարգացման միջավայրերում: Qbs կառուցման համակարգի զարգացումը, որը претендовал на замену QMake. համայնքի կողմից:
- Նորմային C++17-ի անցումը (նախկինում օգտագործվում էր C++98): Qt 6-ում պլանավորում են իրականացնել C++-ի современных հնարավորությունների աջակցություն, բայց անցյալ ստանդարտների հիման վրա կոդի հետ հետադարձ համադրելիությունը չկորցնելու:
- C++ կոդում որոշ գործառույթների օգտագործելու հնարավորություն, որը առաջարկվում է QML և Qt Quick-ի համար: Այնուհետև QML-ից Qt-ի արմատի մեջ կհանքավորվի բինդինգի (binding) աշխատող շարժիչ, որը թույլ կտա նվազեցնել բինդինգների բարեխոսությունը և հիշողության օգտագործումը և հասանելի դարձնի դրանք բոլոր Qt մասերի համար, ոչ միայն Qt Quick համար:
- Ավելացվող լրացուցիչ լեզուների աջակցությունը, ինչպիսիք են Python և WebAssembly:
Ընտանիք: opennet.ru
