Auf dieser Seite

Neuerungen 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 Technology Preview)

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

  • Es wurden die Funktionen ` QtFuture::whenAll()` und ` QtFuture::whenAny()` hinzugefügt, um mehrere Futures zu kombinieren.
  • Es wurden Überladungen von ` QDir::mkdir()` und ` QFile::open()` hinzugefügt, die ein Berechtigungsargument akzeptieren.
  • QMetaType QFuture<T> kann nun in <void> konvertiert werden. QFuture
  • QDirIterator::nextFileInfo() wurde hinzugefügt, um vorzuspringen und vollständige Dateiinformationen abzurufen.
  • QLocaleDie Zuordnungen von Sprachcodes zu und von „Language“-Werten verfügen nun über Überladungen, die festlegen, welche ISO-639-Code-Typen berücksichtigt werden sollen.
  • QRegularExpressionMatch Verfügt nun über Methoden wie ` hasCaptured()` zum Prüfen, ob eine bestimmte Gruppe überhaupt erfasst wurde.
  • QProcessEnvironment Es gibt nun eine neue Enumeration und einen neuen Konstruktor, mit denen Sie festlegen können, ob die Prozessumgebung beim Start eines entsprechenden ` QProcess ` vom übergeordneten Prozess geerbt werden soll.

    Warnung: In älteren Qt-Versionen war das Standardverhalten die Vererbung, obwohl in der Dokumentation angegeben war, dass dies nicht der Fall sei. Qt 6.3 ändert das Verhalten des Standardkonstruktors so, dass es nun tatsächlich der Dokumentation entspricht. Das heißt, der Start eines „ QProcess “ mit einem „ QProcessEnvironment “, der mit „ QProcessEnvironment()“ erstellt wurde, erfolgt in einer leeren Umgebung. Verwenden Sie „ QProcessEnvironment “ (QProcessEnvironment::InheritFromParent), um zum alten Verhalten zurückzukehren.

    Außerdem wurde die Methode „ inheritsFromParent()“ hinzugefügt, um zu prüfen, ob eine Instanz nach dem neuen Verfahren erstellt wurde.

  • QVarLengthArray verfügt nun über die Methoden „ emplace()“ und „ emplace_back()“.
  • Die von ` QLocale`, ` QTime ` und der Parsing- und Serialisierungsfunktion von ` QDateTime` verwendeten Zeitformate erkennen nun die Formatspezifizierer `'aP'` und `'Ap'`, um eine AM/PM-Kennzeichnung zu erhalten, wobei die für die Locale angemessene Groß-/Kleinschreibung für die Kennzeichnung verwendet wird. Zuvor musste der Autor eines Zeitformats eine Schreibweise wählen, die möglicherweise mit der Locale des Benutzers in Konflikt stand. Bei QTime und QDateTime ist die Locale immer C, deren Indikatoren in Großbuchstaben geschrieben werden. Bei QLocale entspricht die Groß-/Kleinschreibung nun der von amText() oder pmText(). Zuvor wäre „aP“ als Indikator in Kleinbuchstaben gefolgt von einem „P“ und „Ap“ als Indikator in Großbuchstaben gefolgt von einem „p“ interpretiert worden. Das „P“ oder „p“ wird nun als Teil des Formatbezeichners behandelt: Wenn das bisherige Verhalten gewünscht ist, verwenden Sie entweder „APp“ oder „apP“ als Formatbezeichner oder setzen Sie das „p“ oder „P“ im Format in Anführungszeichen. Die bisherigen Spezifizierer „a“, „ap“, „A“ und „AP“ bleiben ansonsten unbeeinträchtigt.
  • QDebug kann nun „ QVarLengthArray “-Objekte streamen.
  • QObject::findChildren() verfügt nun über eine Überladung, die keinen Namen benötigt.
  • QSemaphore wurde um Überladungen und Methodennamen erweitert, um eine bessere Kompatibilität mit std::counting_semaphore und std::chrono zu gewährleisten.
  • QJsonValue verfügt nun über R-Wert-Konstruktoren, die QJsonArray und QJsonObject akzeptieren.
  • QCborMap::fromJsonObject() und QCborArray::fromJsonArray() verfügen nun über R-Wert-Überladungen.
  • QByteArrayView::trimmed() wurde hinzugefügt, um führende und nachgestellte Leerzeichen zu entfernen.
  • QByteArrayView wurde um Methoden zur Zahlenauswertung erweitert.
  • Es wurden isValidUtf8()-Methoden zu QByteArray, QByteArrayView und QUtf8StringView hinzugefügt.
  • QCryptographicHash::resultView() wurde hinzugefügt, um eine Ansicht über result() bereitzustellen.
  • QStringBuilder unterstützt nun QByteArrayView.
  • QUuid kann nun aus einem ` QAnyStringView` erstellt werden.
  • QLocale verfügt nun über einen Konstruktor, der ein ` QStringView` akzeptiert.
  • QByteArrayList::join() verfügt nun über eine Überladung, die QByteArrayView akzeptiert.
  • QCryptographicHash::addData() verfügt nun über eine Überladung, die „ QByteArrayView “ entgegennimmt.
  • qSwap() ist nun constexpr.
  • Neue öffentliche CMake-API hinzugefügt:

Qt GUI Modul

  • Der Aufruf von ` QGuiApplication::setLayoutDirection()` mit einem nicht-automatischen Wert deaktiviert nun die automatische Erkennung auf Basis der installierten Übersetzer.
  • An ` QDesktopServices::setUrlHandler()` übergebene URL-Handler müssen nun vor ihrer Zerstörung durch den Aufruf von ` unsetUrlHandler()` entfernt werden. Es wird nicht mehr empfohlen, sich darauf zu verlassen, dass der Destruktor des Handlers diese implizit zurücksetzt.
  • QVulkanWindow aktiviert nun alle Vulkan-1.0-Funktionen, die vom physischen Gerät als unterstützt gemeldet werden.

Qt Quick Modul

  • Neuer Eintrag hinzugefügt: ` TreeView`.
  • Alle Zeiger-Handler verfügen über einstellbare „ parent “-Eigenschaften.
  • HoverHandler sowie „ WheelHandler “ verfügen über eine Eigenschaft „ blocking “, mit der gesteuert werden kann, ob die Hover- bzw. Scrollrad-Ereignisse an Elemente und Handler hinter dem „ parent “ des Handlers weitergeleitet werden.
  • TapHandler verfügt nun über einen weiteren Wert für „ gesturePolicy “: „ DragWithinBounds “; dieser ähnelt „ WithinBounds “, mit dem Unterschied, dass „ timeHeld “ während des Ziehens nicht zurückgesetzt wird, selbst wenn der Benutzer den Mauszeiger gedrückt hält, und das Signal „ longPressed “ unabhängig von der Ziehschwelle ausgelöst wird, sofern der Benutzer den Mauszeiger so lange gedrückt hält. Dies ist nützlich für die Implementierung von „Drücken-Ziehen-Loslassen“-Komponenten wie Menüs (z. B. das Kreisdiagramm-Menü im Beispiel für Zeiger-Handler), während „ timeHeld “ verwendet wird, um eine „Öffnungs“-Animation direkt zu steuern.

  • QQuickItem::clipRect() liefert nun den im „ viewport “ sichtbaren Bereich (das übergeordnete „ Flickable “ oder „ Window “) und kann zur Optimierung in benutzerdefinierten Elementen dazu verwendet werden, die Anzahl der Knotenvertexe im Szenenbaum zu begrenzen – allerdings auf Kosten eines häufigeren Aufrufs von „ updatePaintNode()“. Siehe die Dokumentation zu den neuen Flags „ QQuickItem::ItemObservesViewport “ und „ QQuickItem::ItemIsViewport “.
  • Um Speicherplatz und Startzeit zu sparen, vermeiden „ Text “ und „ TextEdit “ nun die Erzeugung von Szenengraph-Knoten für große Textabschnitte, die unsichtbar sind, da sie außerhalb des Ansichtsbereichs liegen (Flickable oder Window).
  • Text rendert nun horizontale Linien aus HTML oder Markdown.
  • In Text können horizontale Linien sowie Unter-, Über- und Durchstreichungslinien durch im HTML-Quellcode enthaltene CSS-Regeln farblich gestaltet 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 aus aufgerufen werden, um die Ausgabe des Operators „ qDebug “ für ein Element und alle seine untergeordneten Elemente einzurücken, um die Baumstruktur darzustellen.
  • TapHandler tapped Die Signale „ “ und „ “ haben nun zwei Argumente: die Instanz „ “ und das „ “, auf das zugegriffen wird. Wenn Sie einen Signal-Handler benötigen, sollten Sie eine explizite Funktion schreiben, um diese Argumente zu empfangen: singleTapped doubleTapped QEventPoint button
    onTapped: function(point, button) { ... }
    onDoubleTapped: (point, button)=> ...
  • DragHandler activeTranslation enthält nun den Bewegungsbetrag seit Beginn der Ziehgeste. ` ` enthält die kumulierte Summe der Bewegungen, die während nachfolgender Ziehgesten stattgefunden haben, und kann zwischen den Gesten auf beliebige Werte zurückgesetzt werden. persistentTranslation

Qt Quick Controls Modul

Qt Quick Dialogs Modul

  • FolderDialog und MessageDialog wurden hinzugefügt. Dabei handelt es sich auf Plattformen, die dies unterstützen, um native Dialoge und auf anderen Plattformen um nicht-native Qt Quick -Dialoge.

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

Qt Widgets Das Modul

  • QToolBar unterstützt nun das Scrollen mit einem kinetischen Rad oder einem Trackpad.

Es stehen mehrere neue Enum-Werte für „ QStyle “ zur Verfügung, mit denen Stile weitere Aspekte des Erscheinungsbilds einer widgetbasierten Benutzeroberfläche anpassen können:

Qt Network Moduls

  • QNetworkInformation „transportMedium“ gelernt. Eine Eigenschaft, die das Übertragungsmedium der primären Netzwerkschnittstelle zurückgibt.
  • QNetworkInformation Ebenfalls gelernt: `isMetered`. Eine Eigenschaft, die angibt, ob das Netzwerk volumenbasiert abgerechnet wird.

Qt Qml-Modul

  • Ein QML-Typ-Compiler als Tech-Preview hinzugefügt (qmltc), der QML-Typstrukturen in C++ kompiliert.
  • Es wurden mehrere neue Warnungen zu „qmllint“ hinzugefügt, das nun die Compiler-Infrastruktur nutzt.
  • Das reine Header-Modul „qmlintegration“ ermöglicht 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 CMake-API „qt_generate_foreign_qml_types()“ zu einem QML-Modul hinzugefügt werden.
  • „qmlcachegen“ kompiliert nun geeignete Funktionen und Ausdrücke in C++, um die Leistung zu verbessern.
  • Es wurde eine allgemeine Unterstützung für gruppierte Eigenschaften in „ Binding “ und „ PropertyChanges “ hinzugefügt, wodurch die Syntax für gruppierte Eigenschaften (z. B. „ someId.someProperty “) in diesen Kontexten verwendet werden kann.
  • Einführung grundlegender „ QML Language Server “.
  • Es wurde die Unterstützung für Namespaces als Erweiterungen anderer Namespaces über QML_NAMESPACE_EXTENDED eingeführt.
  • Neue öffentliche CMake-API hinzugefügt:

Qt Quick 3D Modul

  • ReflectionProbe wurde hinzugefügt, wodurch Modelle nun Reflexionen anzeigen können.
  • Particles3D: Neues Element „ ParticleCustomShape3D “, das emittierende Formen aus benutzerdefinierten CBOR-Binärdateien lädt.
  • Particles3D: Sprite-Partikel unterstützen nun die 3D-Umgebungslichter.
  • Particles3D: Neues „ DynamicBurst “-Element für deklaratives dynamisches Emittieren und für das Emittieren zu Start- und Endzeitpunkten der Spur.
  • ResourceLoader -Komponente zur expliziten Festlegung der Lebensdauer von Ressourcen hinzugefügt (in der Technology Preview)
  • PrincipledMaterial: Unterstützung für „ClearCoat“, „Transmission“ und „Refraction“ hinzugefügt.
  • glTF2: Importer unterstützen nun die folgenden zusätzlichen Erweiterungen: KHR_materials_clearcoat, KHR_materials_ior, KHR_materials_transmission, KHR_materials_volume

Qt WebEngine Modul

  • Wird nun mit Python 3 statt mit Python 2 kompiliert
  • API zum Ersetzen des QML-Touch-Auswahlmenüs hinzugefügt
  • Neue öffentliche CMake-API hinzugefügt:
    • zur Konvertierung von Hunspell-Wörterbüchern in das binäre Format „ Qt WebEngine “ .bdic: qt_add_webengine_dictionary()

Qt Data Visualization Modul

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

Qt Positioning Modul

  • Für die Plattformen Android und iOS wurde das neue Attribut „ DirectionAccuracy “ hinzugefügt. Es gibt die Genauigkeit der bereitgestellten Peilung an.

Qt Bluetooth Modul

  • Die Windows-Implementierung von „ QBluetoothLocalDevice “ wurde erweitert. Sie meldet den Adapterzustand korrekt und ermöglicht es, den Zustand umzuschalten. Die Unterstützung für die Verfolgung verbundener/getrennter Geräte fehlt weiterhin.
  • Die „ QBluetoothDeviceInfo “-API wurde erweitert, um die während der Werbung veröffentlichten Daten des Bluetooth-Low-Energy-Dienstes bereitzustellen.

Qt Wayland Compositor Modul

  • Es wurde eine API zum Erstellen benutzerdefinierter Shell-Erweiterungen hinzugefügt. Eine Anleitung zur Verwendung finden Sie im Beispiel.
  • Es wurde eine Qt-Shell hinzugefügt, die alle in Qt verfügbaren Funktionen des Fenstersystems unterstützt.
  • Unterstützung für das „ presentation-time “-Protokoll wurde hinzugefügt.
  • Unterstützung für mehrere Eingabemethodenprotokolle auf demselben Server hinzugefügt, um Clients aus unterschiedlichen Quellen zu unterstützen.

Plattformänderungen

Plattformen für die Technologievorschau

WebAssembly

Es wurden mehrere Verbesserungen an Qt für WebAssembly vorgenommen. Weitere Informationen finden Sie in der Plattformdokumentation unter Qt für WebAssembly.

  • Es wurde die Unterstützung für das Kopieren und Einfügen von Bildern und HTML-Text in die System-Zwischenablage hinzugefügt.
  • SIMD-Unterstützung wurde hinzugefügt. Beachten Sie, dass zur Aktivierung von SIMD Qt aus dem Quellcode kompiliert werden muss.
  • Es wurde Unterstützung für den Aufruf von ` QEventLoop::exec()` und ` QThread::exec()` in sekundären Threads hinzugefügt.
  • Es wurde Unterstützung für den Aufruf von ` QEventLoop::exec()` und ` QDialog::exec()` im Hauptthread unter Verwendung von Emscripten Asyncify hinzugefügt. Beachten Sie, dass die Aktivierung von Asyncify erfordert, dass Qt aus dem Quellcode kompiliert wird.
  • Drag-and-Drop funktioniert nun auch bei asyncify-aktivierten Builds.
  • Es wurde Unterstützung für das Tunneln von TCP- und UDP-Sockets über WebSockets hinzugefügt, unter Verwendung von Emscriptens emulierten POSIX-TCP-Sockets über WebSockets. Diese Unterstützung ist auf asynchrone Sockets im Haupt-Thread beschränkt.

Windows auf ARM

Windows auf ARM64 befindet sich weiterhin in der Technology Preview, da Probleme mit optimierten Qt-Builds noch nicht behoben werden konnten.

Mobile Plattformen

Android

  • Die Demo zum In-App-Kauf und das QML-Beispiel „ Qt 3D: Planets“ wurden um Android-spezifische Verbesserungen erweitert.
  • Gradle wurde auf 7.2.0 und das Android Gradle Plugin (AGP) auf 7.0.2 aktualisiert (erfordert JDK 11 oder höher).
  • Das fehlende _make_aab-Target für CMake-Android-Projekte wurde hinzugefügt.
  • Ein Multi-ABI-Build für CMake wurde hinzugefügt, siehe QT_ANDROID_ABIS.
  • QML-Module werden nun in einem gemeinsamen Verzeichnis namens „android-qml“ im Build-Ordner des Benutzers abgelegt. Dies dient als gemeinsamer Importpfad für das Tool „androiddeployqt“.
  • Die QML-Testumgebung funktioniert nun auch für Android-Builds.

iOS

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

Eingebettete Plattformen

Boot to Qt

  • Boot to Qt Der Stack wurde aktualisiert und verwendet nun Yocto 3.4 (honister).
  • Qt PDF und der Qt-Sprachserver wurden in den „ Boot to Qt “-Stack integriert.

Sonstiges

Wayland

  • Unterstützung für das „ DataDeviceV3 “-Protokoll wurde implementiert.
  • Die wl_seat -Unterstützung wurde auf Version 7 aktualisiert.
  • Unterstützung für die Auswahl des Eingabemethode-Protokolls hinzugefügt, falls 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 eine Übersicht über die API-Änderungen in Qt 6.3:

Ergänzungen zu allen Qt 6-Versionen

What's New in Qt 6.0

Listet die neuen Funktionen in Qt 6.0 auf.

What's New in Qt 6.1

Listet die neuen Funktionen in Qt 6.1 auf.

What's New in Qt 6.2

Listet die neuen Funktionen in Qt 6.2 auf.

What's New in Qt 6.3

Listet die neuen Funktionen in Qt 6.3 auf.

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.

What's New in Qt 6.9

Listet die neuen Funktionen in Qt 6.9 auf.

What's New in Qt 6.10

Listet die neuen Funktionen in Qt 6.10 auf.

What's New in Qt 6.11

Listet die neuen Funktionen in Qt 6.11 auf.

What's New in Qt 6.12

Listet die neuen Funktionen in Qt 6.12 auf.

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