Dostępna wersja alfa Qt 6.0

Firma Qt ogłosił o tłumaczeniu wątku Qt 6 do etapu testów alfa. Qt 6 zawiera znaczące zmiany architektoniczne i do zbudowania wymaga kompilatora obsługującego standard C++ 17. Uwolnienie zaplanowany od 1 grudnia 2020 r.

Klucz Cechy Qt 6:

  • Interfejs API abstrakcyjnej grafiki niezależny od interfejsu API 3D systemu operacyjnego. Kluczowym elementem nowego stosu graficznego Qt jest silnik renderujący sceny, który wykorzystuje warstwę RHI (Rendering Hardware Interface) do obsługi aplikacji Qt Quick nie tylko z OpenGL, ale także z interfejsami API Vulkan, Metal i Direct 3D.
  • Moduł Qt Quick 3D z API do tworzenia interfejsów użytkownika w oparciu o Qt Quick, łączący elementy grafiki 2D i 3D. Qt Quick 3D pozwala używać QML do definiowania elementów interfejsu 3D bez użycia formatu UIP. W Qt Quick 3D można używać jednego środowiska wykonawczego (Qt Quick), jednego układu scen i jednego środowiska animacji dla 2D i 3D, a także używać Qt Design Studio do tworzenia interfejsu wizualnego. Moduł rozwiązuje problemy takie jak duży narzut przy integracji QML z treścią z Qt 3D lub 3D Studio oraz zapewnia możliwość synchronizacji animacji i transformacji na poziomie klatki pomiędzy 2D i 3D.
  • Restrukturyzacja bazy kodu na mniejsze komponenty i zmniejszenie rozmiaru produktu bazowego. Narzędzia programistyczne i wyspecjalizowane komponenty będą dostarczane jako dodatki rozprowadzane w sklepie z katalogami Rynek Qt.
  • Znacząca modernizacja QML:
    • Silne wsparcie dla pisania.
    • Możliwość kompilacji QML do reprezentacji C++ i kodu maszynowego.
    • Udostępnienie opcji pełnej obsługi JavaScript (używanie w pełni funkcjonalnego silnika JavaScript wymaga dużych zasobów, co uniemożliwia użycie QML na sprzęcie takim jak mikrokontrolery).
    • Odmowa wersjonowania w QML.
    • Ujednolicenie struktur danych powielonych w QObject i QML (zmniejszy zużycie pamięci i przyspieszy uruchamianie).
    • Odejście od generowania struktur danych w czasie wykonywania na rzecz generowania w czasie kompilacji.
    • Ukrywanie wewnętrznych komponentów poprzez użycie prywatnych metod i właściwości.
    • Poprawiona integracja z narzędziami programistycznymi do refaktoryzacji i diagnostyki błędów w czasie kompilacji.
  • Dodawanie narzędzi do przetwarzania zasobów związanych z grafiką w czasie kompilacji, takich jak konwertowanie obrazów PNG na skompresowane tekstury lub konwertowanie shaderów i siatek na zoptymalizowane formaty binarne dla określonego sprzętu.
  • Osadzanie zunifikowanego silnika motywów i stylów, pozwalającego uzyskać wygląd aplikacji opartych na Qt Widgets i Qt Quick, natywnym dla różnych platform mobilnych i stacjonarnych.
  • Zdecydowano się użyć CMake zamiast QMake jako systemu kompilacji. Wsparcie dla tworzenia aplikacji przy użyciu QMake pozostanie, ale sam Qt będzie budowany przy użyciu CMake. Wybrano CMake, ponieważ ten zestaw narzędzi jest szeroko stosowany wśród twórców projektów C++ i jest obsługiwany w wielu zintegrowanych środowiskach programistycznych. Opracowanie systemu montażu Qbs, który miał być zamiennikiem QMake, rozszerzony wspólnota.
  • Przejście na standard C++17 w trakcie rozwoju (wcześniej używany był C++98). Qt 6 planuje wdrożyć obsługę wielu nowoczesnych funkcji C++, ale bez utraty kompatybilności wstecznej z kodem opartym na starszych standardach.
  • Możliwość wykorzystania części funkcjonalności oferowanych dla QML i Qt Quick w kodzie C++. Zaprezentowany zostanie nowy system właściwości dla QObject i podobnych klas. Z QML silnik do pracy z powiązaniami zostanie zintegrowany z rdzeniem Qt, co zmniejszy obciążenie i zużycie pamięci przez powiązania i udostępni je wszystkim częściom Qt, a nie tylko Qt Quick.
  • Rozszerzona obsługa dodatkowych języków, takich jak Python i WebAssembly.
  • Źródło: opennet.ru

Dodaj komentarz