Firma Qt Company opublikowała wydanie frameworka Qt 6.1, w którym kontynuowana jest praca nad stabilizacją i rozbudową funkcjonalności gałęzi Qt 6. W Qt 6.1 zapewniono wsparcie dla platform Windows 10, macOS 10.14+, Linux (Ubuntu 20.04+, CentOS 8.1+, OpenSuSE 15.1+), iOS 13+ oraz Android (API 23+). Kody źródłowe komponentów Qt dostarczane są na licencjach LGPLv3 i GPLv2.
Kluczowe ulepszenia w Qt 6.1 dotyczą głównie włączenia do składu modułów, które były dostępne w Qt 5.15, ale nie były gotowe do włączenia w pierwszym wydaniu Qt 6. W szczególności do składu włączono moduły:
- Active Qt — wsparcie dla elementów sterujących COM i ActiveX na platformie Windows.
- Qt Charts — tworzenie diagramów.
- Qt Data Visualization — wizualizacja danych statycznych i dynamicznych.
- Qt Device Utilities — część pakietu Qt for Device Creation.
- Qt Graphical Effect — interfejs do uproszczenia portowania aplikacji na Qt 6.
- Qt Lottie — renderuje grafikę i animacje wyeksportowane w formacie JSON za pomocą wtyczki Bodymovin do pakietu Adobe After Effects. Zawiera wbudowany mikrosilnik do wykonywania animacji, przycinania, przetwarzania warstw i innych efektów.
- Qt State Machine — framework do tworzenia konstrukcji zorientowanych na zdarzenia i realizacji automatu stanowego na bazie SCXML.
- Qt Virtual Keyboard — implementacja wirtualnej klawiatury.
Moduły, które jeszcze nie zostały przeniesione i oczekiwane są w LTS-wydaniu Qt 6.2, planowanym na wrzesień.
- Qt Bluetooth
- Qt Multimedia
- Qt NFC
- Qt Positioning
- Qt Quick Dialogs: Folder, Message Box
- Qt Remote Objects
- Qt Sensors
- Qt SerialBus
- Qt SerialPort
- Qt WebChannel
- Qt WebEngine
- Qt WebSockets
- Qt WebView
Zmiany w Qt 6.1:
- W Qt Core dokonano prac nad zwiększeniem użyteczności i uproszczeniem API. Dodano metody removeIf() oraz rozszerzono liczbę klas wspierających metodę erase_if(). Zrealizowano metody dostępne w QString, ale brakujące w QStringView. Dodano zabezpieczone przed przepełnieniem funkcje dodawania, odejmowania i mnożenia. Ulepszono wsparcie dla 16-bitowych wartości zmiennoprzecinkowych. Zaktualizowano API do wiązania właściwości (property binding), które pojawiło się w Qt 6.0. Dodano nowe klasy do uproszczenia integracji z Java, QJniEnvironment oraz QJniObject, które są zwykle wymagane na platformie Android.
- W Qt Gui poprawiono wsparcie dla graficznego API Vulkan 1.1 i 1.2. Dodano nową klasę QUrlResourceProvider, która jest używana w QLabel i pozwala na uniknięcie ponownej implementacji loadResource() oraz tworzenia podklas QTextDocument. Zrealizowano możliwość zastosowania określonych przez użytkownika funkcji korekcyjnych komponentów przestrzeni kolorów w klasie QColorSpace.
- W Qt Network wprowadzono klasę QNetworkInformation, która pozwala określić stan sieci w systemie. W obsłudze HTTP Cookie dodano wsparcie dla trybu SameSite.
- W Qt Qml zrealizowano opcje QJSPrimitiveValue i QJSManagedValue dla bardziej precyzyjnego zarządzania wykonaniem JavaScript.
- W Qt Quick 3D dodano wsparcie dla morfingu animacji docelowej oraz zrealizowano eksperymentalne wsparcie dla renderowania instancjonowanego (instanced rendering), które pozwala na jednoczesne renderowanie wielu kopii jednorodnych obiektów umieszczonych w peryferyjnych częściach sceny. Metoda ta znacznie przyspiesza renderowanie w przypadku dużej liczby podobnych obiektów w scenie. Na podstawie tej metody zrealizowano wsparcie dla renderowania trójwymiarowych cząsteczek.
Źródło: opennet.ru
