Was ist neu in Qt 6.3

Neue und wiederhergestellte Module in Qt 6.3

Qt 6.3 fügt das folgende Modul hinzu:

Qt 6.3 führt die folgenden Module wieder ein, die in Qt 6.2 nicht vorhanden waren. Alle aufgeführten Module wurden auf Qt 6 und das CMake-Build-System portiert.

  • Qt PDF (in der technischen Vorschau)

Eine detailliertere Liste der Änderungen an den einzelnen Modulen finden Sie unter Änderungen an Qt-Modulen in Qt 6.

Neue Funktionen in Qt 6.3

Qt Core Modul

  • Die Funktionen QtFuture::whenAll() und QtFuture::whenAny() wurden hinzugefügt, um mehrere Futures zu kombinieren.
  • QDir::mkdir() und QFile::open() Überladungen hinzugefügt, die ein Berechtigungsargument akzeptieren.
  • QMetaType kann nun jede QFuture<T> in QFuture<void> konvertieren.
  • QDirIterator::nextFileInfo() hinzugefügt, um vollständige Dateiinformationen zu erhalten und weiterzuleiten.
  • QLocaleDie Zuordnungen von Sprachcodes zu und von Sprachwerten haben nun Überladungen, die angeben, welche ISO 639 Codetypen berücksichtigt werden sollen.
  • QRegularExpressionMatch hat jetzt hasCaptured() Methoden, um zu testen, ob eine bestimmte Gruppe überhaupt erfasst wurde.
  • QProcessEnvironment hat ein neues Enum und einen Konstruktor erhalten, mit denen Sie wählen können, ob die Prozessumgebung vom Elternprozess geerbt werden soll, wenn ein entsprechender QProcess gestartet wird.

    Warnung: In älteren Qt-Versionen war das Standardverhalten die Vererbung, obwohl die Dokumentation dies nicht vorsah. Qt 6.3 ändert das Verhalten des Standardkonstruktors so, dass es tatsächlich mit der Dokumentation übereinstimmt. Das bedeutet, dass das Starten einer QProcess mit einer QProcessEnvironment, die durch QProcessEnvironment() erstellt wurde, in einer leeren Umgebung gestartet wird. Verwenden Sie QProcessEnvironment(QProcessEnvironment::InheritFromParent), um zum alten Verhalten zurückzukehren.

    Außerdem wurde die Methode inheritsFromParent() hinzugefügt, um auf eine Instanz zu testen, die auf die neue Weise erstellt wurde.

  • QVarLengthArray hat jetzt die Methoden emplace() und emplace_back().
  • Zeitformate, die von QLocale, QTime und QDateTime verwendet werden, erkennen nun die Formatspezifikationen 'aP' und 'Ap', um einen AM/PM-Indikator zu erhalten, wobei die dem Gebietsschema entsprechende Groß- und Kleinschreibung für den Indikator verwendet wird, während der Autor eines Zeitformats zuvor eine Groß- und Kleinschreibung wählen musste, die mit dem Gebietsschema des Benutzers in Konflikt stehen könnte. Für QTime und QDateTime ist das Gebietsschema immer C, dessen Indikatoren in Großbuchstaben geschrieben sind. Für QLocale entspricht die Groß- und Kleinschreibung nun der von amText() oder pmText(). Zuvor wurde 'aP' als Kleinbuchstaben-Indikator gefolgt von einem 'P' und 'Ap' als Großbuchstaben-Indikator gefolgt von einem 'p' gelesen. Das 'P' oder 'p' wird nun als Teil des Formatbezeichners behandelt: Wenn das frühere Verhalten gewünscht wird, muss entweder 'APp' oder 'apP' als Formatbezeichner verwendet oder das 'p' oder 'P' im Format in Anführungszeichen gesetzt werden. Die vorherigen 'a'-, 'ap'-, 'A'- und 'AP'-Spezifizierer sind ansonsten nicht betroffen.
  • QDebug kann jetzt QVarLengthArray Objekte streamen.
  • QObject::findChildren() hat jetzt eine Überladung, die keinen Namen annimmt.
  • Überladungen und Methodennamen zu QSemaphore hinzugefügt, um die Kompatibilität mit std::counting_semaphore und std::chrono zu verbessern.
  • QJsonValue hat jetzt rvalue-Konstruktoren mit QJsonArray und QJsonObject.
  • QCborMap::fromJsonObject() und QCborArray::fromJsonArray() haben jetzt rvalue-Überladungen.
  • QByteArrayView::trimmed() hinzugefügt, um führende und nachfolgende Leerzeichen zu eliminieren.
  • Methoden zum Parsen von Zahlen wurden zu QByteArrayView hinzugefügt.
  • Die Methoden isValidUtf8() wurden zu QByteArray, QByteArrayView und QUtf8StringView hinzugefügt.
  • QCryptographicHash::resultView() wurde hinzugefügt, um einen Überblick über result() zu geben.
  • QStringBuilder unterstützt jetzt QByteArrayView.
  • QUuid kann nun aus QAnyStringView konstruiert werden.
  • QLocale hat jetzt einen Konstruktor, der eine QStringView nimmt.
  • QByteArrayList::join() hat jetzt eine Überladung, die QByteArrayView.
  • QCryptographicHash::addData() hat jetzt eine Überladung mit QByteArrayView.
  • qSwap() ist jetzt constexpr.
  • Neue öffentliche CMake API hinzugefügt:

Qt GUI Modul

  • Der Aufruf von QGuiApplication::setLayoutDirection() mit einem Nicht-Auto-Wert deaktiviert nun die automatische Erkennung auf Basis der installierten Übersetzer.
  • URL-Handler, die an QDesktopServices::setUrlHandler() übergeben werden, müssen nun durch Aufruf von unsetUrlHandler() entfernt werden, bevor sie zerstört werden. Sich auf den Destruktor des Handlers zu verlassen, um sie implizit zu entfernen, ist veraltet.
  • QVulkanWindow aktiviert jetzt alle Vulkan 1.0-Funktionen, die als vom physischen Gerät unterstützt gemeldet werden.

Qt Quick Modul

  • Neues Element hinzugefügt: TreeView.
  • Alle Pointer-Handler haben setzbare parent Eigenschaften.
  • HoverHandler und WheelHandler haben eine blocking Eigenschaft, um zu steuern, ob die Hover- und Wheel-Ereignisse an Elemente und Handler hinter dem parent des Handlers weitergegeben werden.
  • TapHandler hat jetzt einen weiteren gesturePolicy Wert: DragWithinBounds; er ist ähnlich wie WithinBounds, außer dass, selbst wenn der Benutzer zieht, während er den Punkt gedrückt hält, timeHeld während des Ziehens nicht zurückgesetzt wird, und das longPressed Signal unabhängig von der Ziehschwelle ausgegeben wird, wenn der Benutzer es so lange hält. Dies ist nützlich für die Implementierung von Komponenten wie Menüs (wie das Kuchenmenü im Beispiel des Pointer-Handlers), während timeHeld direkt eine "Öffnungs"-Animation steuert.

  • QQuickItem::clipRect() liefert nun den Bereich, der in viewport (dem übergeordneten Flickable oder Window) sichtbar ist, und kann verwendet werden, um die Knotenpunkte des Szenegraphen als Optimierung in benutzerdefinierten Elementen zu begrenzen, auf Kosten des häufigeren Aufrufs von updatePaintNode(). Siehe Dokumentationen über die neuen QQuickItem::ItemObservesViewport und QQuickItem::ItemIsViewport Flags.
  • Um Speicher und Startzeit zu sparen, vermeiden Text und TextEdit jetzt die Erzeugung von Szenegraph-Knoten für große Textteile, die unsichtbar sind, weil sie außerhalb des Ansichtsfensters liegen (Flickable oder Window).
  • Text rendert jetzt horizontale Regeln aus HTML oder Markdown.
  • In Text können horizontale Regeln und unterstrichene/überstrichene/durchgestrichene Linien durch CSS-Regeln im HTML-Quelltext eingefärbt werden.
    import QtQuick
    
    Text {
        textFormat: Text.RichText
        wrapMode: Text.WordWrap
        width: 440
        font.pointSize: 12
        text: `<p><u style="color: green;">green with underline</u>
                  <span style="text-decoration: underline; text-decoration-color: green;">
                    green underline</span></p>
               <p><s style="background-color: lightgrey;">plain strikethrough</s>
                  <span style="text-decoration: line-through; text-decoration-color: orange;">
                    orange strikethrough</span></p>
               <p><span style="text-decoration: overline;">plain overline</span>
                  <span style="text-decoration: overline; text-decoration-color: red;">
                    red overline</span></p>`
    }
  • QQuickItem::dumpItemTree() wurde hinzugefügt; es kann von C++ (ähnlich wie QObject::dumpObjectTree()) oder von QML aufgerufen werden, um die Ausgabe des qDebug-Operators für ein Element und alle seine Kinder, eingerückt, um die Baumstruktur zu zeigen.
  • TapHandler tapped Die Signale singleTapped und doubleTapped haben jetzt zwei Argumente: die Instanz QEventPoint und das angezapfte button. Wenn Sie einen Signalhandler benötigen, sollten Sie eine explizite Funktion schreiben, die diese Argumente entgegennimmt:
    onTapped: function(point, button) { ... }
    onDoubleTapped: (point, button)=> ...
  • DragHandler activeTranslation persistentTranslation speichert die akkumulierte Summe der Bewegungen, die während der nachfolgenden Ziehgesten stattgefunden haben, und kann zwischen den Gesten auf beliebige Werte zurückgesetzt werden.

Qt Quick Controls Modul

Qt Quick Dialogs Modul

  • FolderDialog und MessageDialog hinzugefügt. Dies sind native Dialoge auf Plattformen, die dies unterstützen, und nicht-native Qt Quick Dialoge auf anderen Plattformen.

    Die nicht-nativen Dialoge unterstützen alle nicht-nativen Stile: Basic, Fusion, Imagine, Material und Universal.

Qt Widgets Das Modul

  • QToolBar unterstützt jetzt das Blättern mit einem kinetischen Rad oder Trackpad.

Mehrere neue QStyle enum-Werte stehen zur Verfügung, mit denen Stile zusätzliche Aspekte des Aussehens und der Haptik einer Widget-basierten Benutzeroberfläche anpassen können:

Qt Network Moduls

  • QNetworkInformation transportMedium gelernt. Eine Eigenschaft, die das Transportmedium der primären Netzwerkschnittstelle zurückgibt.
  • QNetworkInformation auch gelernt isMetered. Eine Eigenschaft, die zurückgibt, ob das Netzwerk gebührenpflichtig ist.

Qt QML-Modul

  • Tech Preview QML Type Compiler (qmltc) hinzugefügt, der QML-Typstrukturen nach C++ kompiliert.
  • Mehrere neue Warnungen wurden zu qmllint hinzugefügt, das nun die Compiler-Infrastruktur verwendet.
  • Das reine Header-Modul qmlintegration erlaubt es, Typen für die Registrierung in einem QML-Modul zu markieren, ohne eine Abhängigkeit zu qtdeclarative hinzuzufügen. Diese können dann über die neue qt_generate_foreign_qml_types() CMake API zu einem QML-Modul hinzugefügt werden.
  • qmlcachegen kompiliert nun geeignete Funktionen und Ausdrücke nach C++, um die Leistung zu verbessern.
  • Neue öffentliche CMake-API hinzugefügt:

Qt Quick 3D Modul

  • ReflectionProbe hinzugefügt, wodurch es möglich ist, Modelle mit Reflexionen zu versehen.
  • Particles3D: Neues Element ParticleCustomShape3D, das emittierende Formen aus benutzerdefinierten CBOR-Binärdateien lädt.
  • Particles3D: Sprite-Partikel haben jetzt Unterstützung für die 3D-Umgebungslichter.
  • Particles3D: Neues DynamicBurst Element für deklaratives dynamisches Emittieren und für das Emittieren zu Start-/Endzeiten von Spuren.
  • Neue ResourceLoader Komponente für die explizite Einstellung von Ressourcen-Lebensdauern (in Technical Preview)
  • PrincipledMaterial: Unterstützung für ClearCoat, Transmission und Refraktion hinzugefügt.
  • glTF2: Importeure unterstützen jetzt die folgenden zusätzlichen Erweiterungen: KHR_materials_clearcoat, KHR_materials_ior, KHR_materials_transmission, KHR_materials_volume

Qt WebEngine Modul

  • Baut jetzt mit Python 3 statt Python 2
  • API zum Ersetzen des QML-Touch-Auswahlmenüs hinzugefügt
  • Neue öffentliche CMake-API hinzugefügt:

Qt Data Visualization Modul

  • Neue Eigenschaft wireframeColor hinzugefügt, um die Drahtgitterfarbe für QSurface3DSeries in Q3DSurface zu setzen.
  • Neue Eigenschaft rowColors hinzugefügt, um verschiedene Farben für Balkenreihen in Q3DBars zu setzen.
  • Eine neue barSeriesMargin Eigenschaft wurde hinzugefügt, um den Rand für einzelne Balken in Q3DBars zu setzen.
  • Es wurde eine Funktion hasSeries hinzugefügt, um zu prüfen, ob eine Reihe bereits in QAbstract3DGraph hinzugefügt wurde.
  • Unterstützung für 16-Bit-Höhenkarten wurde hinzugefügt.

Qt Positioning Modul

  • Ein neues DirectionAccuracy -Attribut wurde für Android- und iOS-Plattformen hinzugefügt. Es stellt die Genauigkeit der bereitgestellten Peilung dar.

Qt Bluetooth Baustein

  • Die Windows-Implementierung von QBluetoothLocalDevice wurde erweitert. Sie meldet den Zustand des Adapters korrekt und erlaubt es, seinen Zustand umzuschalten. Die Unterstützung für die Verfolgung von verbundenen/getrennten Geräten fehlt noch.
  • Die QBluetoothDeviceInfo API wurde erweitert, um die Daten des Bluetooth Low Energy Dienstes, die während der Anzeige veröffentlicht werden, zu veröffentlichen.

Qt Wayland Compositor Modul

  • Es wurde eine API hinzugefügt, um eigene Shell-Erweiterungen zu erstellen. Für Anweisungen zur Verwendung, siehe das Beispiel.
  • Hinzufügen einer Qt-Shell, die alle in Qt verfügbaren Fenstersystemfunktionen unterstützt.
  • Unterstützung für das presentation-time Protokoll wurde hinzugefügt.
  • Unterstützung für mehrere Eingabemethodenprotokolle auf demselben Server, um Clients aus verschiedenen Quellen zu unterstützen.

Plattform-Änderungen

Technologie-Vorschau-Plattformen

WebAssembly

Mehrere Verbesserungen wurden für Qt for WebAssembly vorgenommen. Details finden Sie in der Plattformdokumentation unter Qt für WebAssembly.

  • Unterstützung für das Kopieren/Einfügen von Bildern und HTML-Text in die Systemzwischenablage wurde hinzugefügt.
  • SIMD-Unterstützung hinzugefügt. Beachten Sie, dass die Aktivierung von SIMD die Erstellung von Qt aus dem Quellcode erfordert.
  • Unterstützung für den Aufruf von QEventLoop::exec() und QThread::exec() auf sekundären Threads wurde hinzugefügt.
  • Unterstützung für den Aufruf von QEventLoop::exec() und QDialog::exec() auf dem Hauptthread unter Verwendung von Emscripten Asyncify wurde hinzugefügt. Beachten Sie, dass die Aktivierung von asyncify die Erstellung von Qt aus dem Quellcode erfordert.
  • Drag-and-drop funktioniert nun für asyncify-aktivierte Builds.
  • Es wurde Unterstützung für das Tunneln von TCP- und UDP-Sockets über WebSockets hinzugefügt, unter Verwendung von Emscriptens Emulated POSIX TCP Sockets over WebSockets. Diese Unterstützung ist auf async-Sockets auf dem Hauptthread beschränkt.

Windows auf ARM

Windows auf ARM64 bleibt in der Technology Preview, da Probleme mit optimierten Builds von Qt noch nicht gelöst werden konnten.

Mobile Plattformen

Android

  • Die In-App-Kauf-Demo und Qt 3D: Planets QML Example wurden android-spezifisch verbessert.
  • Gradle wurde auf 7.2.0 und das Android Gradle Plugin (AGP) auf 7.0.2 aktualisiert (erfordert JDK 11 oder höher).
  • Fehlendes _make_aab Ziel für CMake Android Projekte hinzugefügt.
  • Multi-ABI-Build für CMake hinzugefügt, siehe QT_ANDROID_ABIS.
  • QML-Module werden nun in ein gemeinsames Verzeichnis namens "android-qml" unter dem Build-Ordner des Benutzers ausgelagert. Dies dient als gemeinsamer Importpfad für das androiddeployqt Tool.
  • Der QML-Prüfstand funktioniert jetzt für Android-Builds.

iOS

  • CMake-basierte Projekte erzeugen nun einen Standard-Startbildschirm.

Eingebettete Plattformen

Boot to Qt

  • Boot to Qt Stack wurde aktualisiert, um Yocto 3.4 (honister) zu verwenden.
  • Qt PDF und Qt Language Server wurden in den Boot to Qt Stack aufgenommen.

Andere

Wayland

  • Unterstützung für das DataDeviceV3 Protokoll wurde implementiert.
  • Die Unterstützung für wl_seat wurde auf Version 7 aktualisiert.
  • Unterstützung für die Auswahl des Protokolls der Eingabemethode wurde hinzugefügt, wenn der Server mehrere Schnittstellen unterstützt. Dies kann durch Setzen von QT_WAYLAND_TEXT_INPUT_PROTOCOL auf den Namen des Protokolls erfolgen.

Liste der API-Änderungen

Diese Seiten enthalten einen Überblick über die API-Änderungen in Qt 6.3:

Ergänzungen zu allen Qt 6 Releases

What's New in Qt 6.0

Listet die neuen Funktionen in Qt 6.0 auf.

What's New in Qt 6.1

Auflistung der neuen Funktionen in Qt 6.1.

What's New in Qt 6.2

Auflistung der neuen Funktionen in Qt 6.2.

What's New in Qt 6.3

Auflistung der neuen Funktionen in Qt 6.3.

What's New in Qt 6.4

Listet die neuen Funktionen in Qt 6.4 auf.

What's New in Qt 6.5

Listet die neuen Funktionen in Qt 6.5 auf.

What's New in Qt 6.6

Listet die neuen Funktionen in Qt 6.6 auf.

What's New in Qt 6.7

Listet die neuen Funktionen in Qt 6.7 auf.

What's New in Qt 6.8

Listet die neuen Funktionen in Qt 6.8 auf.

© 2025 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.