Qt şirkəti Qt 6-nın yeni filialının ilk sınaq buraxılışı, əhəmiyyətli memarlıq dəyişiklikləri təklif edəcək və qurmaq üçün C++17 standartını dəstəkləyən kompilyator tələb olunacaq. Buraxılış yalnız Qt 6-nın gələcək buraxılışının ilkin skeletini ehtiva edir 1 dekabr 2020-ci il tarixinə. Qt 6 filialında funksionallıq 31 avqustda kod bazasının dondurulması elanına qədər genişləndiriləcək.
İlk sınaq quruluşuna aşağıdakı modullar daxildir:
Qt Core
Qt GUI,
Qt Vidjetləri,
Qt Şəbəkəsi,
Qt QML,
Qt Tez,
Qt Tez İdarəetmələr,
Qt SVG,
Qt Şəbəkə Avtorizasiyası,
Qt SQL və
Qt Testi.
Açar Qt 6:
- Əməliyyat sisteminin 3D API-dən müstəqil olan mücərrəd qrafika API. Yeni Qt qrafikası yığınının əsas komponenti Qt Quick proqramlarını təkcə OpenGL ilə deyil, həm də Vulkan, Metal və Direct 3D API-lərinin üzərində gücləndirmək üçün RHI (Rendering Hardware Interface) qatından istifadə edən səhnə renderinq mühərrikidir.
- 3D və 2D qrafik elementlərini birləşdirən Qt Quick əsasında istifadəçi interfeysləri yaratmaq üçün API ilə Qt Quick 3D modulu. Qt Quick 3D, UIP formatından istifadə etmədən 3D interfeys elementlərini müəyyən etmək üçün QML-dən istifadə etməyə imkan verir. Qt Quick 3D-də siz 2D və 3D üçün bir icra müddəti (Qt Quick), bir səhnə tərtibatı və bir animasiya çərçivəsindən istifadə edə və vizual interfeysin inkişafı üçün Qt Design Studio-dan istifadə edə bilərsiniz. Modul QML-ni Qt 3D və ya 3D Studio-nun məzmunu ilə inteqrasiya edərkən böyük yük kimi problemləri həll edir və 2D və 3D arasında çərçivə səviyyəsində animasiyalar və transformasiyaları sinxronizasiya etmək imkanı verir.
- Kod bazasının daha kiçik komponentlərə yenidən qurulması və əsas məhsulun ölçüsünün azaldılması. Tərtibatçı alətləri və ixtisaslaşdırılmış komponentlər kataloq mağazası vasitəsilə paylanan əlavələr kimi təqdim olunacaq .
- 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əta diaqnozu üçün inkişaf alətləri ilə təkmilləşdirilmiş inteqrasiya.
- 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.
- 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ı, icma.
- İ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 funksiyalardan C++ kodunda istifadə etmək imkanı. QObject və oxşar siniflər üçün yeni mülkiyyət sistemi daxil olmaqla təqdim olunacaq. QML-dən, bağlamalarla işləmək üçün mühərrik Qt nüvəsinə inteqrasiya ediləcək, bu, bağlamalar üçün yükü və yaddaş sərfini azaldacaq və onları Qt Quick üçün deyil, Qt-ın bütün hissələri üçün əlçatan edəcək.
- Python və WebAssembly kimi əlavə dillər üçün genişləndirilmiş dəstək.
Mənbə: opennet.ru
