Qt 6 funksionallıq yol xəritəsi nəşr olundu

Lars Knoll, KHTML mühərrikinin yaradıcısı, Qt Layihəsinin layihə meneceri və Qt Şirkətinin texniki direktoru, izah etdi Qt çərçivəsinin növbəti əhəmiyyətli qolunu yaratmaq planları haqqında. Qt 5.14 filialının funksionallığı tamamlandıqdan sonra inkişaf 6-ci ilin sonunda gözlənilən Qt 2020-nın buraxılışına hazırlaşmağa yönəldiləcək.

Qt 6, Qt 5 ilə uyğunluğu təmin etmək üçün hazırlanacaq, lakin fərdi problemlər yarana bilər, çünki planlaşdırılan memarlıq dəyişiklikləri və təmizlikləri müəyyən uyğunluq səviyyəsini itirmədən həyata keçirmək mümkün olmayacaqdır. Keçidi hamarlaşdırmaq üçün Qt 6-nın bəzi xüsusiyyətlərinin Qt 5.14 və Qt 5.15 LTS buraxılışlarının bir hissəsi kimi azaldılmış formada daxil edilməsi planlaşdırılır. Qt 6-a miqrasiyanın sadələşdirilməsi üçün alət dəsti də hazırlanacaq.

Növbəti əhəmiyyətli filialın əsas məqsədləri arasında funksionallığın 2020-ci ilin tələblərinə uyğunlaşdırılması, kod bazasının təmizlənməsi və layihəyə texniki xidmətin sadələşdirilməsi daxildir. Gözlənilən dəyişikliklər:

  • QML-nin əhəmiyyətli modernləşdirilməsi:
    • Güclü yazma dəstəyi.
    • QML-ni C++ təqdimatına və maşın koduna tərtib etmək bacarığı.
    • Tam JavaScript dəstəyini bir seçim etmək (tam funksiyalı JavaScript mühərrikindən istifadə etmək çoxlu resurs tələb edir ki, bu da mikrokontrollerlər kimi avadanlıqlarda QML-dən istifadənin qarşısını alır).
    • QML-də versiyanın tərtibindən imtina.
    • QObject və QML-də təkrarlanan məlumat strukturlarının unifikasiyası (yaddaş istehlakını azaldacaq və işə başlamanı sürətləndirəcək).
    • Kompilyasiya vaxtı generasiyasının lehinə verilənlər strukturlarının iş vaxtı generasiyasından uzaqlaşmaq.
    • Şəxsi metodlardan və xassələrdən istifadə etməklə daxili komponentləri gizlətmək.
    • Refaktorinq və kompilyasiya zamanı xətaların diaqnozu üçün inkişaf alətləri ilə təkmilləşdirilmiş inteqrasiya;
  • OpenGL, Vulkan, Metal və Direct 3D (əvvəllər Qt yalnız OpenGL idi) daxil olmaqla, müxtəlif qrafik API-lərin qüsursuz istifadəsini təmin etmək üçün yeni mücərrəd təbəqənin, Rendering Hardware Interface (RHI) əlavə edilməsi. QPainter, Qt Quick Scenegraph və Qt3D daxil olmaqla, bütün mövcud renderinq infrastrukturu RHI istifadəsinə çevriləcək. Müxtəlif şeyder inkişaf dillərini dəstəkləmək üçün Qt Shader Tools modulunun əlavə edilməsi və həm quruculuq mərhələsində, həm də icra zamanı şeyderlərin çarpaz tərtibini təmin etmək planlaşdırılır;
  • 2D və 3D qrafik elementlərini birləşdirən istifadəçi interfeyslərinin yaradılması üçün vahid API-nin hazırlanması. Yeni API sizə UIP formatından istifadə etmədən 3D interfeys elementlərini müəyyən etmək üçün QML-dən istifadə etməyə imkan verəcək. 3D məzmunu Qt Quick ilə inteqrasiya etmək üçün yeni interfeys Qt 3D və ya 3D Studio-dan olan məzmunla QML inteqrasiyasının yüksək xərcləri və animasiyaları və 2D və 3D arasında çərçivə səviyyəli transformasiyaları sinxronizasiya edə bilməmək kimi problemləri həll etməyi planlaşdırır. Birləşdirilmiş 2D və 3D göstərmə yeni renderinq mühərrikindən istifadə etməklə həyata keçiriləcək. Qt 3 buraxılışında 5.14D dəstəyi ilə yeni Qt Quick-in önizləməsi gözlənilir;
  • PNG şəkillərini sıxılmış teksturaya çevirmək və ya şaderləri və meshləri xüsusi aparat üçün optimallaşdırılmış ikili formatlara çevirmək kimi tərtib zamanı qrafika ilə əlaqəli aktivləri emal etmək üçün alətlər əlavə etmək;
  • Mövzular və üslublar üçün vahid mühərrikin yerləşdirilməsi, müxtəlif mobil və masaüstü platformalar üçün doğma olan Qt Widgets və Qt Quick əsasında tətbiqlərin görünüşünə nail olmağa imkan verir;
  • İstifadəçi interfeysi yaratmaq üçün vasitələrin unifikasiyası. Funksionallığın təkrarlanmasının və iki ayrı məhsulun çatdırılmasının dayandırılmasının qarşısını almaq üçün Qt 3D Studio funksionallığının Qt Design Studio-ya inteqrasiya ediləcəyi gözlənilir, onun bir çox alt sistemləri və plaginləri birləşdirmək üçün çərçivə eyni kod bazasında qurulmuşdur. Qt Yaradan.
    Qt Design Studio həmçinin Photoshop, Sketch, Illustrator, Maya və 3D Max kimi məzmun yaratma paketləri ilə yüksək keyfiyyətli inteqrasiya təmin etməyi planlaşdırır. Vahid inkişaf alət dəstində dəstəklənən əsas dillər C++, QML və Python-dur. Unifikasiya həm də Qt Creator-dan interfeys dizayn alətlərinə daxil olmaq və interfeys dizaynerlərinə tərtibatçı alətlərindən imkanlar təqdim etmək imkanı deməkdir, məsələn, layihənin tərtib edilməsi və ya proqramın cihazda sınaqdan keçirilməsi;

  • Quraşdırma sistemi kimi QMake əvəzinə CMake-dən istifadə etmək qərara alındı. QMake istifadə edərək proqramların yaradılması dəstəyi qalacaq, lakin Qt özü CMake istifadə edərək qurulacaq. CMake seçilmişdir, çünki bu alətlər dəsti C++ layihə tərtibatçıları arasında geniş istifadə olunur və bir çox inteqrasiya olunmuş inkişaf mühitlərində dəstəklənir. QMake üçün əvəzedici olduğunu iddia edən Qbs montaj sisteminin inkişafı, dayandırıldı;
  • İnkişaf zamanı C++17 standartına keçid (əvvəllər C++98 istifadə olunurdu). Qt 6 bir çox müasir C++ funksiyaları üçün dəstəyi həyata keçirməyi planlaşdırır, lakin köhnə standartlara əsaslanan kodla geriyə uyğunluğu itirmədən.
  • QML və Qt Quick üçün təklif olunan bəzi funksiyaları C++ dilindən istifadə etmək imkanı. Xüsusilə, QObject və oxşar siniflər üçün yeni mülkiyyət sistemi təqdim olunacaq. Bağlamalarla işləmək üçün mühərrik QML-dən Qt nüvəsinə inteqrasiya olunacaq ki, bu da bağlamalar üçün yükü və yaddaş sərfini azaldacaq və onları Qt-nin bütün hissələri üçün əlçatan edəcək, nəinki Qt Quick;
  • Python və WebAssembly kimi əlavə dillərə dəstəyin genişləndirilməsi üzrə işlərin davam etdirilməsi;
  • Kiçik komponentlərə bölmək və əsas məhsulun ölçüsünü azaltmaqla yenidən qurulma. Tərtibatçı alətləri və fərdi komponentlər yeni kataloq mağazası vasitəsilə paylanan əlavələr kimi təqdim olunacaq. Həm pulsuz, həm də ödənişli üçüncü tərəf tərtibatçılarından Qt-a əlavələr də paylanma üçün qəbul ediləcək.

Mənbə: opennet.ru

Добавить комментарий