Qt Company ilk test versiyası Qt 6-nın yeni bir qolu, burada əhəmiyyətli arxitektura dəyişiklikləri təqdim olunacaq və yığma üçün C++17 standartını dəstəkləyən bir kompilyator lazım olacaq. Buraxılış yalnız gələcək Qt 6 versiyasının ilkin çərçivəsini əhatə edir, 1 dekabr 2020-ci il tarixində. Qt 6 qolunda funksionallıq kod bazasının 31 avqustda donacağını elan etməyə qədər genişlənəcək.
İlk test buraxılışına daxil olan modul:
Qt Core,
Qt GUI,
Qt Widgets,
Qt Network,
Qt QML,
Qt Quick,
Qt Quick Controls,
Qt SVG,
Qt Network Authorization,
Qt SQL və
Qt Test.
Əsas Qt 6:
- 3D API-dən asılı olmayan abstrakt qrafik API. Yeni Qt qrafika yığını üçün əsas komponent, Qt Quick tətbiqlərinin yalnız OpenGL ilə deyil, eyni zamanda Vulkan, Metal və Direct 3D API-nin üstündə işləməsini təmin edən RHI (Rendering Hardware Interface) təbəqəsi ilə istifadə olunan səhnə görüntüləmə mühərrikidir.
- Qt Quick 3D modulu, 2D və 3D qrafik elementlərini birləşdirən Qt Quick əsaslı istifadəçi interfeysləri üçün API. Qt Quick 3D, UIP formatı işə salmadan istifadəçi interfeysinin 3D elementlərini müəyyən etmək üçün QML istifadə etməyə imkan tanıyır. Qt Quick 3D üçün 2D və 3D üçün yalnız bir runtime (Qt Quick), bir səhnə düzümü və bir animasiya çərçivəsi istifadə oluna bilər; interfeysin vizual inkişafı üçün Qt Design Studio tətbiq edilə bilər. Modul, QML-i Qt 3D və ya 3D Studio-dan olan məzmunla birləşdirməkdəki yüksək sərfiyyat problemlərini həll edir və 2D və 3D arasında ayrı çərçivələr səviyyəsində animasiyanın və transformasiyaların sinxronizasiyasını təmin edir.
- Kod bazasının daha kiçik tərkib hissələrinə bölünməsi və əsas məhsulun ölçüsünün azalması ilə resturukturlaşdırılması. İnkişafçılar üçün alətlər və xüsusi komponentlər, əlavələr kimi çatdırılacaq, .
- QML-də əhəmiyyətli yeniləmə:
- Sıx tipizasiya dəstəyi.
- QML-in C++ və maşın kodu görünüşünə kompilyasiyası imkanı.
- JavaScript-in tam dəstəyinin seçimlərə keçirilməsi (tam funksiya JavaScript mühərrikinin istifadəsi daha çox resurs tələb edir və bu, mikrokontrollerlər kimi avadanlıqlar üzərində QML-in tətbiqinə mane olur).
- QML-də versiyalaşmadan imtina.
- QObject və QML-də təkrarlanan məlumat strukturlarının birləşdirilməsi (bu, yaddaş istehlakını azaldır və başlanğıcı sürətləndirir).
- İcra zamanı məlumat strukturlarının yaradılmasından kompilyasiya zamanı yaradılmasına keçid.
- İç komponentlərin gizlədilməsi üçün özəl metodlar və xüsusiyyətlərin istifadəsi.
- Kompilyasiya zamanı refaktoring və xəta diaqnostikası üçün inkişaf alətləri ilə yaxşılaşdırılmış inteqrasiya.
- Qrafika ilə əlaqəli resursların emal alətlərinin kompilasiya mərhələsində əlavə edilməsi, məsələn, PNG şəkillərinin sıxılmış teksturalara çevrilməsi və ya shaderlər və mesh-lərin spesifik avadanlıq üçün optimallaşdırılmış ikilik formatlara çevrilməsi.
- Qt Widgets və Qt Quick əsaslı tətbiqlərin müxtəlif mobil və masa üstü platformalar üçün doğma görünüşünü təmin edən mövzu və stil üçün vahid mühərrikin inteqrasiyası.
- Yığma sistemi olaraq QMake yerinə CMake-dən istifadə etmək qərara alındı. QMake ilə tətbiqlərin yığılması dəstəklənəcək, lakin Qt özü CMake istifadə olunaraq yığılacaq. CMake, C++ layihələri inkişaf etdirən mühitdə geniş yayılmasına görə seçilmişdir və bir çox inteqrasiya olunmuş inkişaf mühitləri tərəfindən dəstəklənir. QMake-i dəyişdirmək iddiasında olan Qbs yığım sisteminin inkişafı icma tərəfindən.
- Inkişafda C++17 standartına keçid (əvvəllər C++98 istifadə olunurdu). Qt 6-da bir çox müasir C++ imkanlarının dəstəklənməsi planlaşdırılır, lakin keçmiş standartlara əsaslanan kodla geri uyğunluq itirilmədən.
- C++ kodunda QML və Qt Quick üçün təklif olunan bəzi funksionallığın istifadəsi imkanı. Eyni zamanda, QObject və bənzər siniflər üçün yeni xüsusiyyətlər sistemi təqdim ediləcək. QML-dən Qt nüvəsinə bağlanmalarla (binding) işləmək üçün mühərrik inteqrasiya olunacaq ki, bu da bağlanmalar üçün yükü azaldacaq və yaddaş istehlakını azaltmağa imkan tanıyacaq, bu da bağlanmaların bütün Qt hissələri üçün, yalnız Qt Quick üçün deyil, mövcud olmasına səbəb olacaq.
- Python və WebAssembly kimi əlavə dillərin dəstəklənməsinin genişləndirilməsi.
Mənbə: opennet.ru
