Auf dieser Seite

Neuerungen in Qt 6.6

Neue und wiederhergestellte Module in Qt 6.6

Qt 6.6 enthält die folgenden neuen und wiederhergestellten Module und Werkzeuge:

Neue und wiederhergestellte Module in der Technology Preview

Hinweis: Die Stabilitätvon API und ABI wird nicht garantiert.

Qt Graphs Das Modul

Qt Graphs soll das Ersatzmodul für Qt Data Visualization sein. Es nutzt Qt Quick 3D als Rendering-Engine, um Unterstützung für native Grafik-Backends zu bieten, anstatt wie Qt Data Visualization auf OpenGL 2.1 zurückzugreifen.

Das Modul wird die meisten, wenn nicht sogar alle Funktionen von Qt Data Visualization bereitstellen. Einige erweiterte Funktionen sind in der Technology Preview möglicherweise noch unvollständig.

Neue Funktionen in Qt 6.6

Qt Core Modul

  • Das Makro „ Q_NODISCARD_CTOR “ wurde hinzugefügt, das angewendet werden sollte, um Konstruktoren als „nodiscard“ zu kennzeichnen. Das Makro wird bei Compilern, die dies unterstützen, zu „ [[nodiscard]] “ aufgelöst und hat bei anderen Compilern keine Auswirkung.
  • Es wurden „ assign() “-Überladungen zu den folgenden Qt-Containern hinzugefügt: „ QVarLengthArray “, „ QList “, „ QByteArray “ und „ QString “. Diese Funktionen bieten eine bequeme Möglichkeit, neue Daten zuzuweisen und dabei die vorhandenen „ capacity() “ wiederzuverwenden.
  • Sie können den Inhalt jeder Datei, die dem Ressourcen-Dateisystem hinzugefügt wurde, weglassen, indem Sie in der Datei „CMakeLists.txt“ die Eigenschaft „QT_DISCARD_FILE_CONTENTS“ für die Quelldatei angeben. Die Dateiknoten bleiben dabei erhalten. Beim manuellen Erstellen von „ .qrc “-Dateien können Sie denselben Effekt erzielen, indem Sie das Attribut „ empty “ eines XML-Knotens vom Typ „ file “ auf „ true “ setzen.
  • QFileInfo Es gibt eine neue Member-Funktion „ readSymLink()“, die den Rohpfad zurückgibt, sowie neue Überladungen, die einen „ QTimeZone “ für Funktionen im Zusammenhang mit Zeitstempeln entgegennehmen.
  • Die Struktur ` QProcess::UnixProcessParameters ` und die Enumeration ` QProcess::UnixProcessFlag ` können in der neuen Memberfunktion ` QProcess::setUnixProcessParameters()` verwendet werden, um Unix-spezifische Einstellungen und Parameter eines untergeordneten Prozesses zu ändern, beispielsweise das Schließen überflüssiger Dateideskriptoren.
  • Die neue Klasse ` QNativeIpcKey ` enthält einen nativen Schlüssel, der von ` QSharedMemory ` und ` QSystemSemaphore` verwendet wird und eine bessere Unterstützung für Sandbox-Anwendungen auf Apple-Plattformen bietet. Weitere Informationen finden Sie unter „Native IPC-Schlüssel “.
  • Die meisten Qt-APIs, die mit Zeiträumen arbeiten, wurden auf die entsprechenden Datentypen aus ` std::chrono` portiert.
  • QXmlStreamReader::hasStandaloneDeclaration() gibt an, ob das Dokument über eine explizite Standalone-Deklaration verfügt.

Qt GRPC Modul

  • QGrpcChannelOptions und QGrpcCallOptions wurden hinzugefügt. Dies sind die neuen Methoden, um Optionen an Kanäle und Aufrufe zu übergeben.
  • QGrpcMetadata wurde hinzugefügt, um zusätzliche Metadaten an die Aufrufe zu übergeben.
  • Unterstützung für QML-Typen für automatisch generierte QtGRPC-Klassen integriert.

Qt GUI Modul

  • QFont::setFeatures() wurde hinzugefügt, um direkten Zugriff auf OpenType-Funktionen in der Schriftart zu ermöglichen.
  • QPalette verfügt nun über einen Farbeintrag „ accent()“, der standardmäßig die Akzentfarbe des Systems verwendet.
  • Die Klassenfamilie „ QRhi “ ist nun vollständig dokumentiert und wird als API mit einer eingeschränkten Kompatibilitätsgarantie angeboten. Das Qt Rendering Hardware Interface ist eine Abstraktionsschicht für 3D-Grafik-APIs und Shading-Sprachen, die von Modulen wie Qt Quick und Qt Quick 3D verwendet wird, um plattformübergreifende, portable Rendering-Engines und Materialsysteme zu implementieren, die auf Direct 3D 11/12, Vulkan, Metal, OpenGL und OpenGL ES laufen können. Anwendungen, die ihr eigenes Low-Level-Rendering durchführen möchten, ohne direkt auf potenziell plattformspezifische 3D-APIs und Shading-Sprachen angewiesen zu sein, können nun ` QRhi ` und die zugehörigen Klassen nutzen, um eine ` Qt Quick `-Szene zu erweitern, auf eine ` QWindow` zu rendern, Offscreen-Rendering in eine Textur durchzuführen oder GPU-Rechenaufgaben zu verteilen. In früheren Qt-6-Versionen waren die „ QRhi “-Klassen vollständig privat, und die Dokumentation war nicht Teil des standardmäßigen Qt-Dokumentationsumfangs. Nun werden sie ähnlich wie die QPA-Klassen (QPlatform*) behandelt, d. h., sie bilden eine spezielle Klasse von Klassen, die zwar nicht alle Standardmuster und die von öffentlichen Qt-APIs garantierte Quell- und Binärkompatibilität bieten, aber dennoch für Anwendungsentwickler mit mittleren bis fortgeschrittenen Kenntnissen zur Verfügung stehen. Die Dokumentation zu den „ QRhi “-APIs ist nun Teil der Standard-Qt-Dokumentation. Außerdem wurde das Beispiel „rhiwindow“ eingeführt.
  • Ein Direct 3D 12-Backend für QRhi wurde hinzugefügt. Dies hat derzeit keine Auswirkungen auf Anwendungen, da die Standard-Backend-Auswahl für Qt Quick und QQuickWidget unter Windows weiterhin Direct 3D 11 ist und sich daran in absehbarer Zukunft voraussichtlich auch nichts ändern wird. Das neue D3D12-Backend sollte vorerst als experimentell betrachtet werden und ist in erster Linie für Anwendungen nützlich, bei denen Qt das Rendering über Direct 3D 12 durchführen muss, um die Interoperabilität mit der eigenen Rendering- oder Rechen-Engine der Anwendung oder einer externen Komponente zu vereinfachen, die D3D12 erfordert.
  • Qt-6-Anwendungen können nun benutzerdefinierte oder plattformspezifische Zwischenablageformate unterstützen, indem sie die neuen Klassen „ QUtiMimeConverter “ (für macOS) und „ QWindowsMimeConverter “ (für Windows) verwenden. Diese Klassen sind vereinheitlichte Versionen der Typen „QMacPasteboardMime“ und „QWindowsMime“ aus Qt 5. Hilfe bei der Anpassung einer bestehenden Implementierung finden Sie im Portierungsleitfaden.
  • QTextListFormat::setStart() ermöglicht es, dass eine Textliste mit einem anderen Index als 1 beginnt.

Qt Location Modul

  • Kartenelemente werden nun korrekter dargestellt, einschließlich solcher, die den Globus umschließen oder Löcher enthalten.
  • Kartenelemente können nun unter Verwendung verschiedener Referenzflächen dargestellt werden. Die Enumeration „ QLocation::ReferenceSurface “ bietet die Optionen „ Map “ und „ Globe “, die zusammen mit den Eigenschaften „ referenceSurface “ in den Elementtypen verwendet werden können, um zu steuern, ob ein Element auf einer flachen Karte dargestellt wird oder der Krümmung des Globus folgt.
  • Das Mausrad kann bei gedrückter Umschalttaste die „ bearing “ ändern oder bei gedrückter Strg-Taste die „ tilt “.

Qt Multimedia Modul

  • Die Bibliothek „ Qt Multimedia “ fordert keine Audio- oder Video-Berechtigungen mehr an, sondern prüft lediglich, ob diese vorhanden sind oder nicht. Die Client-Anwendungen müssen die Berechtigungen mithilfe der „ C++ “- oder der QML- Berecht igungs-API anfordern.
  • Die neue Klasse „ QWindowCapture “ bietet nun Unterstützung für die Videoaufzeichnung einzelner Desktop-Anwendungsfenster innerhalb eines „ QMediaCaptureSession “. Das aufgezeichnete Video kann an jede Art von Videoausgabe weitergeleitet werden, beispielsweise an „ QMediaRecorder “ oder an „ QVideoWidget “. Die Fensteraufzeichnung wird nur mit dem FFmpeg-Backend unterstützt.
  • QMediaRecorder wurde um Eigenschaften erweitert, die eine bessere Steuerung von Videoqualität, Auflösung und Bitraten ermöglichen.

Qt PDF Modul

Qt Positioning Modul

  • Die Bibliothek „ Qt Positioning “ fordert die Standortberechtigungen nicht mehr an, sondern prüft lediglich, ob sie vorhanden sind oder nicht. Die Client-Anwendungen müssen die Berechtigungen über die „ C++ “- oder die QML- Berechtigungs -API anfordern.

Qt Protobuf Modul

  • Die Verwendung bestimmter „ Qt Core “- und „ Qt GUI “-Typen als Teil des *.proto-Schemas wurde aktiviert.
  • Integrierte Unterstützung von QML-Typen für automatisch generierte „ QProtobufMessage “-Klassen.
  • Umstellung auf implizit gemeinsam genutzte Daten für automatisch generierte QProtobufMessage -Klassen. Dies ermöglicht den Zugriff auf die Nachrichtentypen nach Wert aus einem QML-Kontext heraus, ohne dass viele Kopien erstellt werden müssen.
  • Unterstützung für „ Qt Protobuf Well-Known Types“ für den Typ „google.protobuf.Any“ hinzugefügt.
  • Es wurde Unterstützung für den Typ „oneof“ integriert, einen union-ähnlichen Typ in Protobuf, der keinen Wert enthalten muss.

Qt Bluetooth Modul

  • Die Bibliothek „ Qt Bluetooth “ fordert die Bluetooth-Berechtigungen nicht mehr an, sondern prüft lediglich, ob sie vorhanden sind oder nicht. Die Client-Anwendungen müssen die Berechtigungen über die „ C++ “- oder die QML -Berechtigungs-API anfordern.
  • Qt stellt nun einen nativen 128-Bit-Typ „unsigned int“ namens „quint128“ bereit. Auf Plattformen, die diesen Typ unterstützen, verwenden der Konstruktor „ QBluetoothUuid(quint128)“ und die Methode „ QBluetoothUuid::toUInt128()“ nun diesen Typ anstelle einer benutzerdefinierten Struktur, die in früheren Qt-Versionen verwendet wurde. Solange Ihr Code „quint128“ als undurchsichtigen Typ behandelt, ist die Änderung quell- und binärkompatibel. Ziehen Sie jedoch die Verwendung der neuen Überladungen in Betracht, die „ QUuid::Id128Bytes “ verwenden, falls Probleme auftreten sollten. Plattformen, die die 128-Bit-int-Typen nicht unterstützen (wie z. B. MSVC), verwenden weiterhin die benutzerdefinierte Struktur aus Qt Bluetooth.

Qt Qml-Modul

  • Es wurde Unterstützung für die Verwaltung von Anwendungsberechtigungen über QML hinzugefügt. Das Qt Qml Core Modul stellt die Qt-C++-Funktionalität für Anwendungsberechtigungen über eine Reihe von Berechtigungstypen für QML bereit, mit denen sich Berechtigungen plattformübergreifend prüfen oder anfordern lassen. Weitere Informationen finden Sie unter „QML-Anwendungsberechtigungen “.
  • Das XMLHttpRequest-Objekt wurde nun um zwei weitere Funktionen erweitert, um es an moderne Browser anzupassen. Die Eigenschaft „responseURL“ wurde hinzugefügt, mit der überprüft werden kann, ob eine Weiterleitung stattgefunden hat. Ebenso wurde die Methode „overrideMimeType()“ hinzugefügt, mit der das XMLHttpRequest-Objekt die Antwort anhand eines bestimmten MIME-Typs analysieren kann, anstatt sich an den Wert im „Content-Type“-Header der Antwort zu halten.
  • Der QML Language Server bietet nun erste Unterstützung für „Zur Definition springen“ und „Verwendungen suchen“. Außerdem unterstützt er die vollständige Dokumentformatierung.
  • Es ist nun möglich, qmllint mit Plugins zu erweitern. Die Plugin-API befindet sich derzeit in der Tech-Preview.

Qt Quick Modul

  • Die Eigenschaft „ font.features “ wurde hinzugefügt, um direkten Zugriff auf OpenType-Funktionen in der Schriftart zu ermöglichen.
  • TableView verfügt über eine „ selectionMode “-Eigenschaft, um zu steuern, ob einzelne oder mehrere Zellen ausgewählt werden können.
  • TreeView verfügt über die Eigenschaft „ rootIndex “, um nur einen Teilbaum des Modells anzuzeigen.
  • AnimatedImage unterstützt nun die Eigenschaft „ sourceSize “.
  • Mit der Umgebungsvariable „ QT_QUICK_FLICKABLE_WHEEL_DECELERATION “ können Sie die Verzögerung nach dem Scrollen mit einer Maus mit „Klick“-Rad anpassen. Standardmäßig ist die Beschleunigung nun deaktiviert, sodass die Scrollstrecke proportional zur Anzahl der „Klicks“ ist (es sei denn, die Plattform stellt eine eigene Beschleunigung bereit); Sie können jedoch einen Wert unter 15000 festlegen, um das alte Verhalten wiederherzustellen. Die Eigenschaft „ flickDeceleration “ gilt nun nur noch für Touch-Flicks.
  • Die meisten Eigenschaften sind nun FINAL, was bedeutet, dass sie nicht mehr durch die Deklaration neuer Eigenschaften mit denselben Namen überschattet werden können. Es wird eine Warnung ausgegeben, wenn eine „ FINAL “-Eigenschaft überschattet wird. Wir empfehlen Benutzern, solche Eigenschaften umzubenennen, um unerwartete Verhaltensänderungen zu vermeiden.
  • Es wurden eine Reihe von Funktionen im Zusammenhang mit „ QRhi “ in „ QQuickWindow “, „ QQuickRenderControl “ und „ QSGTexture “ hinzugefügt und verfügbar gemacht. Die Abfrage der von der Onscreen- oder Offscreen- Qt Quick -Rendering verwendeten „ QRhi “, „ QRhiSwapChain “ oder „ QRhiCommandBuffer “ wurde nun vereinfacht. Einige Funktionen, die zuvor in der Dokumentation verborgen waren, da sie auf „ QRhi*“-Klassen beruhten, wurden sichtbar gemacht. „ createTextureFromRhiTexture()“ wurde zu „ QQuickWindow “ hinzugefügt und dient als Gegenstück zu „createTextureFromImage()“.
  • Die Scenegraph-Beispiele wurden aktualisiert: „rhiunderqml“ wurde hinzugefügt, das veraltete, ausschließlich auf OpenGL basierende „fboitem“-Beispiel wurde durch ein neues, portables „rhitextureitem“-Beispiel ersetzt und das „customrendernode“-Beispiel wurde aktualisiert. Zusammen veranschaulichen diese die drei Möglichkeiten, eine „ Qt Quick “-Szene um benutzerdefiniertes Low-Level-2D/3D-Rendering zu erweitern (die drei Ansätze sind: Underlay/Overlay, benutzerdefiniertes Element auf Basis von Rendering in eine Textur, benutzerdefiniertes Element mit „ QSGRenderNode “).
  • Die Eigenschaft „Path::simplified“ wurde hinzugefügt, um Pfade vor dem Rendern automatisch zu vereinfachen. Dies entspricht der Funktion „ QPainterPath::simplified()“.
  • Unterstützung für das Erfassen von GPU-Zeitstempeln für das Rendering von „ QQuickWindow “ hinzugefügt. Wenn dies über „ setTimestamps()“ von „ QQuickGraphicsConfiguration “ oder die entsprechende Umgebungsvariable aktiviert wird, erscheinen die GPU-seitigen Zeitangaben in der Debug-Ausgabe, die bei Aktivierung von Protokollierungskategorien wie „ qt.scenegraph.time.renderloop “ ausgegeben wird, sowie im Element „ DebugView “ von „ Qt Quick 3D “, als Ergänzung zu den CPU-seitigen Zeitangaben. Dies wird derzeit für Direct 3D 11, Metal und Vulkan unterstützt (vorausgesetzt, die zugrunde liegende Vulkan-Implementierung unterstützt Zeitstempelabfragen). Die Unterstützung für die übrigen 3D-APIs wird in zukünftigen Versionen eingeführt.

Qt Quick Controls Modul

  • Die Eigenschaft „ live “ wurde zu „ SpinBox “ hinzugefügt. Diese steuert, ob der „ value “ aktualisiert wird, wenn der Benutzer den „ displayText “ bearbeitet.
  • Das Signal „ wrapped “ wurde zu „Dial“ hinzugefügt. Dieses wird ausgelöst, wenn der Drehregler umläuft, d. h. von seinem Maximalwert zum Minimalwert oder umgekehrt wechselt.
  • Dem Dial wurden die Eigenschaften „ startAngle “ und „ endAngle “ hinzugefügt. Diese Eigenschaften steuern den Start- und Endwinkel des Dial in Grad.

Qt Quick Layouts Modul

Qt Quick Modul „Shapes“

  • Es wurde ein experimentelles Backend zur Kurvenwiedergabe hinzugefügt, das Kurven in höherer Qualität als der Standard-Geometrie-Renderer darstellt und Anti-Aliasing ohne Verwendung von MSAA anwendet. Es kann über die Eigenschaft „ Shape::preferredRendererType “ ausgewählt werden.

Qt Quick 3D Modul

  • Es wurde eine QML-API zum prozeduralen Erstellen von „ TextureData “ hinzugefügt, die den Namen „ ProceduralTextureData “ trägt. Bisher war dies nur über C++ durch Unterklassenbildung von „ QQuick3DTextureData “ möglich.
  • Es wurde eine QML-API zum prozeduralen Erstellen von Netzgeometrie namens „ ProceduralMesh “ hinzugefügt. Bisher war dies nur über C++ durch Unterklassenbildung von „ QQuick3DGeometry “ möglich.
  • Es ist nun möglich, PLY-Dateien zu importieren.
  • Es wurde Unterstützung für die Erstellung von 3D-Texturen mit „ QQuick3DTextureData “ hinzugefügt.
  • Es wurde eine erste Unterstützung für Renderer-Erweiterungen hinzugefügt. Dies ist der erste Schritt, um das Hinzufügen zusätzlicher Durchläufe zu ermöglichen und die Anpassung der integrierten Render-Durchläufe zu ermöglichen. „ View3D “ verfügt über eine neue Eigenschaft namens „extensions“, die ein Array von Unterklassen von „ QQuick3DRenderExtension “ akzeptiert. Dies wird zusätzlich durch die Hilfsfunktionen in „ QQuick3DExtensionHelpers “ unterstützt.

Qt SQL-Modul

  • Ein Plugin für Mimer SQL wurde hinzugefügt
  • MySQL/MariaDB wurde um die neuen Verbindungsoptionen „MYSQL_OPT_PROTOCOL“, „MYSQL_SHARED_MEMORY_BASE_NAME“, „MYSQL_OPT_TLS_VERSION“ und „MYSQL_OPT_SSL_MODE“ erweitert
  • Das ODBC-Plugin gibt nun alle nativen Fehlercodes zurück in QSqlError
  • QSqlQuery Es wurden zwei neue Funktionen hinzugefügt: `boundValueName()` und `boundValueNames()`

Qt TextToSpeech Modul

Die Klasse „ QTextToSpeech “ hat einige weitere Funktionen erhalten, die für alle Datenbanken verfügbar sind:

  • Anwendungen können über ` enqueue` mehrere Textblöcke an eine Synthese-Engine übergeben.
  • Das neue Signal ` aboutToSynthesize ` wird unmittelbar vor der Synthese eines Textabschnitts ausgelöst.
  • Die Auswahl einer der von der Engine bereitgestellten Stimmen anhand einer Reihe von Kriterien ist nun mit der Memberfunktion „ findVoices “ ganz einfach. QML-Code kann darüber hinaus den Typ „ VoiceSelector “ als angehängte Eigenschaft verwenden.

Nicht alle neuen Funktionen sind bei jeder Engine verfügbar. Anwendungen können das neue Flag „ Capabilities “ und die Eigenschaft „ engineCapabilities “ nutzen, um zu prüfen, welche der folgenden neuen Funktionen die aktuell verwendete Engine unterstützt:

  • Verfügt die Engine über die Funktion „ Synthesize “, kann „ QTextToSpeech “ nun Text in PCM-Daten synthetisieren. Die Funktion „ synthesize “ kann mit einem Callable verwendet werden, das PCM-Datenblöcke empfängt, sobald diese synthetisiert wurden.
  • Verfügt die Engine über die Funktion „ WordByWordProgress “, gibt „ QTextToSpeech “ für jedes Wort im aktuellen Textblock das Signal „ sayingWord “ aus, sobald dieses gesprochen wird.

Qt WebEngine Modul

  • QWebEngineLoadingInfo wurde um Antwort-Header erweitert.
  • Es ist nun möglich, zusätzliche Antwort-Header in „ QWebEngineUrlRequestJob “ hinzuzufügen.
  • Es wurde ein QWebEngineUrlScheme::FetchApiAllowed -Flag hinzugefügt, um die HTML5-Fetch-API für benutzerdefinierte URL-Schemas zu aktivieren.
  • qWebEngineGetDomainAndRegistry()-Funktion zum Auslesen der effektiven Top-Level-Domain, wie sie von Chromium/QtWebEngine erkannt wird.
  • Die Einstellung „QWebEngineSettings::DisableReadingFromCanvas“ wurde hinzugefügt, um das Auslesen von Canvas-Inhalten zu deaktivieren und so zusätzlichen Schutz vor Fingerprinting zu bieten.

Qt Widgets Das Modul

  • QWidget erhielt eine neue Überladung von `setTabOrder()`, die eine Initialisierungsliste akzeptiert, wodurch die gesamte Kette mit einem einzigen Aufruf festgelegt werden kann.
  • QMessageBox::Option bietet die Möglichkeit, für jedes Meldungsfeld festzulegen, ob ein natives Meldungsfeld verwendet werden soll.

Änderungen an der Plattform

Desktop-Plattformen

macOS

  • Für die Erstellung von Benutzerprojekten oder von Qt für macOS selbst ist nun mindestens CMake-Version 3.21.1 erforderlich.
  • QMessageBox::setCheckBox() wird nun bei der Verwendung nativer Meldungsfelder berücksichtigt.
  • QFileDialog löst nicht mehr unnötigerweise Berechtigungsdialoge aus.

Mobile Plattformen

Android

  • Unterstützung für `FileProvider` bei der Verwendung von ` QDesktopServices::openUrl()` hinzugefügt.
  • AndroidX wurde standardmäßig hinzugefügt (eine Abhängigkeit für FileProvider).
  • Einführung der CMake-Richtlinie QTP0002 für Android-spezifische Ziel-Eigenschaften.
  • Aktualisierungen der Liste der auf Android unterstützten Beispiele.
  • Android 13 als maximal unterstützte Version
  • Gradle wurde auf Version 8.3.0 aktualisiert.
  • QFileDialog Berücksichtigt alle angegebenen Namensfilter und nicht nur den ausgewählten.
  • Die SDK-Stufe für Android-Ziele wurde auf 33 aktualisiert, um den Anforderungen des Play Store für 2023 zu entsprechen.

iOS

  • Unterstützung für ` QWindow::setMask()` zum Maskieren von Darstellung und Eingabe hinzugefügt.
  • Unterstützung für fremde Fenster hinzugefügt, um UIViews in QWindows einzubetten.

Eingebettete Plattformen

Boot to Qt

  • Es wurde Unterstützung für Yocto 4.2 (mickledore) hinzugefügt.
  • Die Unterstützungsstufen für Zielhardware wurden um neue unterstützte Boards erweitert:
    • Tier-1-Unterstützung für das i.MX 93-Board von NXP hinzugefügt.
    • Tier-1-Unterstützung für das Jetson AGX Xavier-Board hinzugefügt.
    • Tier-3-Unterstützung für das „ NXP “-i.MX-8QuadXPlus-Board hinzugefügt.
    • Tier-3-Support für das Toradex Apalis iMX8-Board hinzugefügt.
  • Toradex- und ST-Zielplattformen verwenden nun die neueste Yocto-LTS-Version (kirkstone).

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.