Auf dieser Seite

Neuerungen in Qt 6.12

Neue und wiederhergestellte Module in Qt 6.12

Qt 6.12 enthält die folgenden neuen Module und Werkzeuge:

  • Das Modul „Qt Qml Design Support“ mit einer Reihe von Typen zur Registrierung und Referenzierung von Objekten in QML. Es ist für zukünftige Design-Tools von „ Qt Quick “ vorgesehen.

Neue Funktionen in Qt 6.12

ActiveQt-Modul

Keine nennenswerten Änderungen.

Qt Bluetooth Modul

  • Das Android-Backend berücksichtigt nun die über „ QLowEnergyAdvertisingParameters “ angegebenen Parameter für das minimale und maximale Intervall der Advertising-Signale beim Starten des BTLE-Advertising.

Qt-Canvas-Painter-Modul

Qt CoAP Modul

Keine nennenswerten Änderungen.

Qt Core Modul

Qt D-Bus Modul

Keine nennenswerten Änderungen.

Qt Graphs Modul

Qt GRPC Modul

Qt GUI Modul

  • Unterstützung für indirektes Rendering wurde zu „ QRhi “ hinzugefügt. Es können nun Puffer vom Typ „ IndirectDrawBuffer “ erstellt und indirekte Zeichenaufrufe über „ QRhiCommandBuffer “ ausgegeben werden.
  • QRhi Es wurde das Feature-Flag „ ShaderDrawParameters “ hinzugefügt, um die Unterstützung für integrierte Shader-Draw-Parameter (z. B. „ gl_DrawID “) abzufragen.
  • Das Vulkan-Backend „ QRhi “ verwendet nun „ VK_EXT_device_fault “, um zusätzliche Details zum Geräteverlust zu melden.
  • QAccessibilityHints Es wurde eine „ motionPreference “-Eigenschaft für Barrierefreiheits-Einstellungen zur Bewegungsreduzierung hinzugefügt.
  • QStyleHints Es wurde „ toolTipWakeUpDelay “ hinzugefügt, wodurch Anwendungen die Verzögerung vor dem Erscheinen eines Tooltips abfragen oder anpassen können.
  • QImageReader Es wurde die Funktion „ effectiveSize()“ hinzugefügt, die die Bildgröße unter Berücksichtigung von „ autoTransform()“ zurückgibt.
  • QTextCursor::deletePreviousChar() (Backspace) verarbeitet nun Emoji-Sequenzen mit mehreren Code-Einheiten korrekt.
  • Qt::InputMethodHint::ImhNoFullscreen wurde hinzugefügt, um festzulegen, dass die Eingabemethode nicht den gesamten Bildschirm einnimmt.
  • Qt::InputMethodHint::ImhDecimalNumbersOnly wurde hinzugefügt, um die Eingabe auf Zahlen einschließlich Dezimalpunkt, jedoch ohne negative Zahlen zu beschränken.

Qt HTTP Server Modul

Qt Image Formats Modul

Keine nennenswerten Änderungen.

Qt Lottie Animation Modul

Qt MQTT Modul

Keine nennenswerten Änderungen.

Qt Multimedia Das Modul

Qt Network Modul

  • QSslKeyingMaterial und QSslConfiguration::keyingMaterial() / setKeyingMaterial() wurden eingeführt, um Exporter für TLS-Schlüsselmaterial (RFC 5705) bereitzustellen.
  • QHostInfo clearCache() wurde hinzugefügt, um den DNS-Ergebniscache programmgesteuert zu leeren.
  • QHttpHeaders Es wurden die Stream-Operatoren ` QDataStream `, ` rangeValues()` zum Parsen des ` Range `-Headers und ` setRangeValues()` zum Setzen desselben hinzugefügt. Die neue Klasse `QHttpHeaderRange` repräsentiert einen einzelnen Byte-Bereich innerhalb dieses Headers.
  • Das OpenSSL-TLS-Backend unterstützt nun die Kompilierung mit OpenSSL 4.

Qt Network Autorisierungsmodul

Keine nennenswerten Änderungen.

Qt OPC UA Modul

Keine nennenswerten Änderungen.

Qt-OpenAPI-Modul

  • qt_add_openapi_client() wurde um die Optionen „ GENERATE_DOCUMENTATION “ und „ DOCUMENTATION_OUTPUT_DIRECTORY “ erweitert, um neben dem Client-Code eine Doxygen-basierte Dokumentation zu generieren.
  • Unterstützung für das Schema-Feature „oneOf“ hinzugefügt.
  • Die Generatoren für Modelleigenschaften wurden umbenannt. „ Q_PROPERTY “ stellt nun dieselben Eigenschaftsnamen bereit wie in der YAML-Datei.
  • Generierte Client-API-Methoden sind nicht mehr virtuell.

Qt Positioning Modul

Qt Print Support Modul

Keine nennenswerten Änderungen.

Qt Protobuf Modul

  • Qt-Eigenschaften in den generierten Nachrichtenklassen werden nun standardmäßig mit dem Modifikator „FINAL“ gekennzeichnet. Dies ermöglicht es den QML-Tools, Leistungsoptimierungen vorzunehmen und effizienteren Code zu generieren. Verwenden Sie die neue Option „ GENERATE_NON_FINAL_PROPERTIES “ von `qt_add_protobuf()`, um zum alten Verhalten zurückzukehren.

Qt Qml Modul

Qt Quick Modul

Qt Quick Controls Modul

  • Der Stil „ QtQuick.Controls.Native “ wurde hinzugefügt. „ import QtQuick.Controls.Native “ wählt zur Kompilierungszeit den für die jeweilige Plattform am besten geeigneten Stil aus. Damit vereint es die Vorteile der Stilauswahl zur Kompilierungszeit mit der Möglichkeit, Ihrer Anwendung ein plattformspezifisches Erscheinungsbild zu verleihen.
  • ToolTip Erhalten eine „ policy “-Eigenschaft zur Steuerung der automatischen Sichtbarkeit von Tooltips.
  • ComboBox Es wurde die Eigenschaft „ highlightOnHover “ hinzugefügt.
  • RangeSlider Es wurde die Eigenschaft „ crossingEnabled “ hinzugefügt, um zuzulassen oder zu verhindern, dass sich die beiden Griffe kreuzen.
  • Menu Es wurde die Eigenschaft „ separatorsCollapsible “ hinzugefügt.
  • MenuItem Zeigt nun die Tastenkombination aus einem zugehörigen „ Action “ an.
  • SearchField Ermöglicht nun die Navigation mit Tasten, wenn das zugehörige „ TextInput “ leer ist.
  • Ein Teil der bestehenden „ TextField “-APIs wurde der „ SearchField “-Klasse aus Gründen der Benutzerfreundlichkeit hinzugefügt: „selectTextByMouse“, „selectedText“, „selectionStart“, „selectionEnd“, „cursorPosition“, „select()“, „selectWord()“ und „deselect()“.

Qt Quick Dialogs Modul

Keine nennenswerten Änderungen.

Qt Quick Effects Modul

Keine nennenswerten Änderungen.

Qt Quick Test Modul

Qt Quick 3D Modul

  • Der QML-Typ „ SkyMaterial “ wurde hinzugefügt, um einen prozeduralen Himmel zu rendern und bildbasierte Beleuchtungsdaten zu generieren.
  • „ QuadTextureProvider “ wurde zum Import „ QtQuick3D.Helpers “ hinzugefügt. Ein QML-Typ, der zum Rendern einer Quad-Textur mithilfe eines benutzerdefinierten Fragment-Shaders verwendet wird.
  • Model Erhielt eine instancingLodFactor -Eigenschaft zur manuellen Steuerung des Detaillierungsgrades bei der Verwendung von GPU-Instanzierung.
  • ExtendedSceneEnvironment Erhalten die Eigenschaften „ ssrThickness “ und „ ssrMaxSteps “ zur feineren Steuerung von Reflektionen im Bildschirmraum.
  • RuntimeLoader Es wurden die Methoden „ query()“ und „ queryAll()“ hinzugefügt, um Objekte anhand ihres Namens oder Typs innerhalb einer dynamisch geladenen Szene zu finden.

Qt Quick 3D XR-Modul

  • Unterstützung für die Mono-View-Konfiguration (XR_VIEW_CONFIGURATION_TYPE_PRIMARY_MONO) hinzugefügt, wodurch XR-Anwendungen von Qt Quick 3D auf 2D-XR-Geräten wie AR-Brillen ausgeführt werden können.

Qt Quick 3D Physik-Modul

Qt Remote Objects Modul

  • Die Eigenschaften „ registryUrl “ und „ persistedStore “ verfügen nun über Signale zur Benachrichtigung bei Änderungen.

Qt SCXML Modul

Keine nennenswerten Änderungen.

Qt Sensors Modul

Keine nennenswerten Änderungen.

Qt Serial Port Modul

Keine nennenswerten Änderungen.

Qt Spatial Audio Modul

Keine nennenswerten Änderungen.

Qt Serial Bus Modul

Keine nennenswerten Änderungen.

Qt SQL Modul

Keine nennenswerten Änderungen.

Qt SVG Modul

Qt Labs StyleKit-Modul

  • Es wurde „ QStyleKitStyle “ eingeführt, eine Unterklasse von „ QStyle “, die StyleKit-basierte Formatierungen auf „ QWidget “-Anwendungen anwendet.
  • Der Stil bietet nun Implementierungen für die Qt Quick Controls -Typen „ RoundButton “ und „ MenuSeparator “ und ersetzt damit den generischen Fallback.

Qt-Modul „TaskTree“

Qt Test Modul

  • Die Benchmark-Ergebnisse enthalten nun die Varianz und die Standardabweichung über alle Mess-Backends hinweg (Zeit, CPU-Ticks, Ereignisse, Valgrind).
  • Der Klartext-Benchmark-Logger formatiert Gleitkommaergebnisse nun aus Gründen der Konsistenz in wissenschaftlicher Notation.
  • Wenn auf der Befehlszeile neben gültigen Testfunktionen auch nicht vorhandene angegeben werden, werden die gültigen Tests dennoch ausgeführt.

Qt Virtual Keyboard Modul

Keine nennenswerten Änderungen.

Qt WebEngine Modul

  • QWebEngineNavigationRequest wurde um die Eigenschaft „userInitiated“ erweitert, um vom Benutzer initiierte Navigationen von programmatischen zu unterscheiden.
  • QWebEngineProfile Es wurde die Methode `setCryptoModulePasswordFunction()` hinzugefügt, um einen Callback zum Entsperren von PKCS#11-Hardware-Token bereitzustellen.

Qt WebSockets Modul

Keine nennenswerten Änderungen.

Qt PDF Modul

  • QPdfSearchModel wurde um eine Status-Eigenschaft und eine Status-Enumeration erweitert, um zu verfolgen, ob eine Suche läuft, im Leerlauf ist oder abgeschlossen ist.
  • QPdfView unterstützt nun das Zoomen mit der Strg-Taste und dem Mausrad, zentriert auf die Cursorposition.
  • render() verfügt nun über optionale Argumente zur Festlegung des Bildformats und der Hintergrundfarbe.

Qt WebView Modul

  • WebView kann nun Inhalte aus dem Qt-Ressourcensystem (qrc:/ -URLs) unter Android, iOS, macOS und Windows laden.

Qt Widgets Modul

Qt XML Modul

Keine nennenswerten Änderungen.

Werkzeuge

Qt Assistant

  • Qt Assistant Zeigt SVG-Diagramme mit hellem bzw. dunklem Design nun korrekt an, wenn ein dunkles Farbschema aktiv ist, entsprechend dem Verhalten der Online-Qt-Dokumentation.

QML-Befehlszeilentools

  • Die Option „ --only-explicit-categories “ wurde zu „qmllint“ hinzugefügt, um alle Standardwarnungen zu unterdrücken.
  • Nicht registrierte Typen, die in Eigenschaften und Methoden registrierter Typen verwendet werden, werden nun in `qmltypes` als „opaque“-Typen erfasst. Dies vermeidet Warnungen in den Entwicklungswerkzeugen, ermöglicht die Autovervollständigung und die Funktion „Zur Definition springen“ in `qmlls` und ermöglicht an mehr Stellen die Bindungskompilierung nach C++.
  • qmllint und qmlls wurden so angepasst, dass bei unbekannten Typen nur noch einmal eine Warnung ausgegeben wird, anstatt für jede Bindung und jede Verwendung des unbekannten Typs eine eigene Warnung zu generieren.
  • Es wurden neue Warnungen in qmllint und qmlls hinzugefügt für:
    • Überschriebene QML-Typmitglieder.
    • Inkompatible Dateiauswahlvarianten (Opt-in).
    • Rekursiv instanziierte QML-Typen.
    • QML-Typen, auf die über ihren Dateinamen statt über ihren „qmldir“- oder „ QT_QML_SOURCE_TYPENAME “-Namen verwiesen wird.
    • JavaScript-Verwendungen der ` new Array() `-Überladung, die mehr als ein Argument akzeptiert.
  • Funktionalität in „ QML Language Server “ hinzugefügt, um:
    • Komponenten über eine Code-Aktion in einen Loader einbinden.
    • C++-Definitionen von über „ QML_FOREIGN “ deklarierten Typen zu finden.
    • Anzeige des Fortschritts bei Hintergrund-Neuerstellungen von QML-Typinformationen.

QDoc-Dokumentationsgenerator

  • C++20-Konzepte: Der neue \concept „topic“-Befehl generiert eine eigene Referenzseite für ein C++20-Konzept, einschließlich einer Liste der dokumentierten Typen und Funktionen, die durch dieses Konzept eingeschränkt sind. Konzeptverweise in C++-Synopsen verweisen sowohl in der HTML- als auch in der DocBook-Ausgabe auf diese Seiten, und Template-Parameter, die direkt durch ein Konzept eingeschränkt sind (wie z. B. ` template <Integral T>`), zeigen den Konzeptnamen anstelle des Schlüsselworts ` typename ` an. Konzeptverweise funktionieren über Modulgrenzen hinweg durch ` .index `-Dateien.
  • enable_if-basierte SFINAE-Einschränkungen werden als lesbare „ requires “-Klauseln anstelle von undurchsichtigen, unbenannten booleschen Vorlagenparametern dargestellt, wodurch die in Qt 6.11 eingeführte Unterstützung für „requires“-Klauseln nach C++20 erweitert wird. Wenn eine Funktion zudem über eine explizite „ requires “-Klausel verfügt, werden beide kombiniert.
  • Explizit mit Standardwerten versehene und gelöschte Funktionen tragen in der Synopsis die Tags „ [default] “ und „ [delete] “, während vom Compiler generierte spezielle Mitgliedsfunktionen mit dem Tag „ [implicit] “ versehen sind. Diese Tags verweisen auf cppreference.com. Für solche Funktionen ohne einen \fn Block generiert QDoc automatisch Dokumentation, ohne Warnungen auszugeben. Explizite Dokumentation überschreibt den generierten Text, und durch Setzen der Konfigurationsvariablen ` showautogenerateddocs ` auf ` false ` wird dieser aus der Ausgabe weggelassen.
  • QDoc unterscheidet zwischen versteckten „Friends“ – also „Friend“-Funktionen, die nur über die argumentabhängige Suche auffindbar sind – und „Friend“-Deklarationen, die lediglich Zugriff gewähren. Dokumentieren Sie versteckte „Friends“, einschließlich derer, die außerhalb der Zeile definiert sind, unter Verwendung ihrer natürlichen Syntax für freie Funktionen, wie z. B. „ \fn operator==(const MyClass &, const MyClass &) “, anstatt eines klassenqualifizierten Namens.
  • Eine einheitliche Tabelle ersetzt die verstreuten Absätze der Vergleichsdokumentation, die von der \compares und \compareswith Befehlen generiert wurde und auf einen Blick zeigt, mit welchen Typen eine Klasse verglichen wird und welche Vergleichskategorie für die jeweilige Beziehung gilt.
  • Der \a Befehl überprüft nun die Namen von Template-Parametern. QDoc warnt vor undokumentierten Template-Parametern in Klassen und Typ-Aliasen sowie vor undokumentierten Nicht-Typ- oder Template-Template-Parametern in Funktionen.
  • Passen Sie den vom \preliminary Befehl generierten Statusdeskriptor und die Meldung mit der vorläufigen Konfigurationsvariablen an, wodurch Begriffe wie „Technology Preview“ anstelle des Standardwerts verwendet werden können. Statusbefehle haben eine einheitliche Priorität: „ \preliminary “ hat Vorrang vor „ \modulestate “, und „ \internal “ hat Vorrang vor beiden.
  • Ein Status, der für ein „ \module “- oder „ \qmlmodule “-Thema festgelegt wird, wie beispielsweise „ \preliminary “ oder „ \deprecated “, wird an die Mitglieder des Moduls weitergegeben, sofern ein Mitglied nicht seinen eigenen Status festlegt.
  • Der neue \qmluncreatabletype Topic-Befehl dokumentiert QML-Typen, die im QML-Typsystem registriert sind, aber nicht instanziiert werden können. QDoc erkennt zudem automatisch Typen, die mit dem Makro „ QML_UNCREATABLE “ annotiert sind.
  • Angeschlossene Eigenschaften, Signale und Methoden werden in den Hauptreferenzseiten von QML dokumentiert, nicht nur auf den Seiten „Alle Mitglieder“.
  • Der \qmlmethod Befehl erfordert eine vollständige Signatur; QDoc gibt eine Warnung aus, wenn der Rückgabetyp fehlt oder die Parameterliste nicht geparst werden kann.
  • „Include“-Anweisungen in der Klassendokumentation spiegeln die tatsächlichen, von Clang gemeldeten Header-Dateinamen wider. Projekte, die Convenience-Header im Qt-Stil (wie z. B. ` <QString>`) verwenden, funktionieren weiterhin automatisch.
  • Jedes Projekt erhält eine einzige „ .index “-Datei im Basisausgabeverzeichnis, die die formatbezogenen Kopien in den formatspezifischen Unterverzeichnissen ersetzt. Relative Pfade in der Konfigurationsvariable „indexes“ werden relativ zum Speicherort der Datei „ .qdocconf “ aufgelöst, im Einklang mit anderen Pfadvariablen.
  • Generierte HTML-Dateien enthalten automatische Einträge in der Datei „ <meta name="keywords"> “, die auf dem Seitentyp basieren (Klasse, QML-Typ, Modul, Beispiel usw.), was die Nachbearbeitung und die Erstellung von Sitemaps erleichtert. Codeblöcke enthalten Tags, die mit der Syntaxhervorhebung von highlight.js kompatibel sind.
  • Kleinere Verbesserungen bei der Dokumentationserstellung: Verwenden Sie \metaqdoc-suppress-inheritance, um die Zeile „Inherits:“ für Typen zu unterdrücken, die eine Basisklasse ausschließlich zu Dokumentationszwecken erben; \list berücksichtigt Startwerte von Null und darunter; \# stellt das Literalzeichen „ # “ in \l -Linkzielen dar; und \details erzwingt das dokumentierte, durch geschweifte Klammern begrenzte Zusammenfassungsargument.
  • Kompatibilität mit LLVM/Clang 22 hinzugefügt.

Qt Linguist

  • „lupdate“ behält nun die vorhandenen Zeilenenden in „ .ts “-Dateien bei. Unter Windows werden Dateien mit CRLF-Zeilenenden direkt mit CRLF aktualisiert; Dateien mit LF-Zeilenenden sowie neue Dateien behalten LF bei.
  • Qt Linguist Verfügt über eine neue Option „-web-help“, um bei Bedarf die Online-Webdokumentation zu nutzen.

Resource Compiler (rcc)

  • rcc dedupliziert nun Ressourcendaten mithilfe eines inhaltsbasierten SHA256-Hashverfahrens. Identische Dateien, die in eine Qt-Ressourcensammlung eingebettet sind, werden nur einmal gespeichert, wodurch die Größe der kompilierten Ressourcen reduziert wird, ohne dass Änderungen am Anwendungsquellcode erforderlich sind.

Änderungen an der Plattform

Änderungen am Build-System

Qt kompilieren

  • Für die Erstellung von Qt ist nun CMake 3.25 oder höher erforderlich.
  • Die CMake-Funktion „ static_compiler_runtime “ wurde hinzugefügt, um die C++-Laufzeitbibliotheken statisch zu verknüpfen. Unter Windows (MSVC) wird dabei die Hybrid-CRT-Methode verwendet, wodurch die Abhängigkeit von der Visual C++ Redistributable entfällt.
  • Beim Erstellen von Qt für Android wird nun Gradle verwendet, anstatt „ javac “ direkt für die Qt-JAR-Ziele aufzurufen.

CMake-API

Desktop-Plattformen

Windows

  • CMake-Projekte generieren und binden nun automatisch ein Anwendungsmanifest für Windows-Ausführungsdateien ein, die mit `qt_add_executable()` erstellt wurden. Das Manifest deklariert die Kompatibilität mit Windows 10/11, ermöglicht die Unterstützung langer Pfade und konfiguriert die UAC-Ausführungsstufe. Zwei neue CMake-Ziel-Eigenschaften steuern das generierte Manifest: QT_WINDOWS_APP_PROJECT_IDENTIFIER legt den Namen der Assembly-Identität fest, und QT_WINDOWS_APP_PROJECT_EXECUTION_LEVEL legt die Ausführungsstufe fest. Weitere Informationen finden Sie unter „Qt für Windows – Bereitstellung “.
  • windeployqt erhält die Optionen „ --appx “ und „ --appx-certificate “ zum Generieren einer „ AppxManifest.xml “, die für die Paketierung als Windows Store-Appx-Paket geeignet ist.
  • QOperatingSystemVersion::Windows11_25H2 (10.0.26200) wird als benannte Betriebssystemversionskonstante hinzugefügt.
  • Unter Windows leitet das Plattform-Plugin nun den Farbraum jedes Bildschirms über „ ColorProfileGetDisplayDefault “ aus dessen ICC-Profil ab, anstatt stets sRGB zu melden.
  • Das DirectWrite-Schriftart-Backend liest nun die GASP-Tabelle jeder Schriftart, um die geeignete Anti-Aliasing-Strategie je nach Schriftart und Schriftgröße auszuwählen, was der Absicht des Schriftdesigners besser entspricht.
  • Der Shader-Festplatten-Cache wurde für aktuelle Intel-GPU-Treiber wieder aktiviert. Er war für Intel-Grafikkarten unter Windows mehrere Jahre lang bedingungslos deaktiviert; stattdessen wird nun eine Treiberversionsprüfung durchgeführt, wodurch die Leistung von „ Qt Quick 3D “ auf moderner Intel-Hardware verbessert wird.
  • QWizard Der Aero-Assistentenstil wird nicht mehr angewendet, wenn sich das System im Dunkelmodus befindet, da er dort nicht korrekt dargestellt wird.
  • ARM64EC wird nun vollständig von Visual Studio 2026 unterstützt. Es gibt keine Installationspakete. Einige Module wie „ Qt WebEngine “, „Qt WebView “ und „ Qt Quick 3D Physics“ werden nicht unterstützt.

Linux

  • QDesktopServices::openUrl() bevorzugt nun den XDG-Desktop-Portal-Dienst org.freedesktop.portal.OpenURI, sofern dieser verfügbar ist, gegenüber xdg-open und den anderen Fallback-Lösungen. Das Portal verhält sich möglicherweise anders als die zuvor verwendeten Anwendungen.
  • Die Fallbacks, die verwendet werden, wenn kein Portal verfügbar ist, wurden aktualisiert: „ kde-open “ von Plasma 6 wird nun erkannt, während die Unterstützung für „ kfmclient “ aus der KDE-3-Ära eingestellt wurde.
  • Die neue Eigenschaft „ motionPreference “ wird aus den Desktop-Einstellungen bezogen: dem Schlüssel „ reduced-motion “ im Portal-Namespace „ org.freedesktop.appearance “ sowie der GNOME-Einstellung „ org.gnome.desktop.interface “ unter „ enable-animations “.
  • Der native GTK3-Schriftartendialog berücksichtigt nun die Schriftartfilteroptionen unter „ QFontDialog “, sowohl für skalierbare gegenüber nicht skalierbaren als auch für monospaced gegenüber proportionalen Schriftarten.
  • Die AT-SPI-Barrierefreiheitsbrücke benachrichtigt nun assistive Technologien über Änderungen des erweiterten und des erweiterbaren Zustands.
  • Aus Qt-Ressourcen hinzugefügte Schriftarten werden bei Verwendung von fontconfig 2.17.1 oder höher wieder korrekt registriert.
  • Unter X11 werden Tooltip-Fenster nicht mehr bei jeder Anzeige neu erstellt.
  • QNetworkProxy erkennt nun das Schema „ socks5h “ in den Umgebungsvariablen „ *_PROXY “, wenn das libproxy-Backend verwendet wird.

macOS

  • QScreen::grabWindow() verwendet nun ScreenCaptureKit anstelle des veralteten „ CGDisplayCreateImageForRect “. Bei der ersten Nutzung der API wird eine Berechtigungsabfrage angezeigt.
  • QWindows In nicht gespiegelte „ NSViews“ eingebettete Elemente behalten nun ihre Position relativ zur oberen linken Ecke der übergeordneten Ansicht bei, wenn diese in der Größe verändert wird.
  • QCocoaNativeInterface::setEmbeddedInForeignView() ist nicht mehr erforderlich oder wird nicht mehr unterstützt, um eine Qt-Ansichts-Hierarchie in eine fremde „ NSView “ einzubetten. Qt verwaltet dies nun automatisch.
  • Sandbox-Anwendungen, die auf Basis eines statischen Qt-Builds erstellt wurden, sind auf Apple-Plattformen nun standardmäßig verschiebbar.
  • QMainWindowDer einheitliche Titel- und Symbolleistenmodus von „ Qt::ExpandedClientAreaHint “ wird nun über „ “ und „ Qt::NoTitleBarBackgroundHint “ implementiert, anstatt über den veralteten, texturierten Stil „ NSWindow “.
  • QStandardPaths::standardLocations() bezieht nun das systemweite Verzeichnis ` /Library/Preferences ` für ` ConfigLocation`, ` GenericConfigLocation` und ` AppConfigLocation` mit ein.

Wayland-Client unter Linux

  • Unterstützung für die Wayland-Protokollerweiterung „ XdgSessionManager “ zur Wiederherstellung von Sitzungen wurde hinzugefügt.
  • Das clientseitige Dekorationsthema „bradient“ zeigt nun Hinweise für die Schaltflächen „Minimieren“, „Maximieren“ und „Schließen“ an.

Wayland-Compositor

  • Unterstützung für das stabile „ linux-dmabuf-v1 “-Protokoll, Version 4, hinzugefügt. Um es zu nutzen, wählen Sie „linux-dmabuf-v1“ als Client-Buffer-Integration aus. Die bisherige Implementierung (Version 3) kann aus Kompatibilitätsgründen weiterhin unter dem Namen „linux-dmabuf-unstable-v1“ verwendet werden.

HarmonyOS

Qt 6.12 führt die Unterstützung für HarmonyOS (OpenHarmony-API-Level 23, HarmonyOS 6.1.0) als Technology Preview ein. Vulkan wird unterstützt, während Barrierefreiheit und „ EmbeddedUIExtensionAbility “ noch nicht verfügbar sind.

Die folgenden Tools und CMake-Funktionen werden bereitgestellt, um die Erstellung und Bereitstellung von Qt-Anwendungen unter HarmonyOS zu erleichtern:

  • harmonydeployqt packt eine Qt-Anwendung als HarmonyOS-Anwendungspaket (HAP), kopiert die erforderlichen Qt-Bibliotheken und Plugins, generiert die Metadaten für „ build-profile.json5 “ und „ module.json5 “ und unterstützt die Einbettung der HAP-Signaturkonfiguration.
  • harmonyostestrunner führt Qt-Autotests auf einem angeschlossenen HarmonyOS-Gerät oder -Emulator über „ hdc “ durch, ausgelöst durch „ ctest “.
  • qt_add_harmonyos_permission() deklariert die von der Anwendung benötigten HarmonyOS-Berechtigungen.

Zu den wichtigsten CMake-Ziel-Eigenschaften für die HarmonyOS-Bereitstellung gehören:

Eine vollständige Liste der bekannten Plattformbeschränkungen finden Sie auf der Wiki-Seite zu den Plattformbeschränkungen von Qt für HarmonyOS.

Mobile Plattformen

Android

Qt für Android
  • Gradle wurde auf 9.5.1 und das Android-Gradle-Plugin auf 9.2.1 aktualisiert.
  • Die Standard-SDK-Version wurde auf Android 17 (API-Level 37) aktualisiert.
  • Unterstützung für die vorausschauende „Zurück“-Geste unter Android 13 und höher hinzugefügt. Qt liefert „Zurück“-Ereignisse über ` OnBackInvokedCallback` und aktiviert standardmäßig das Manifest-Attribut ` android:enableOnBackInvokedCallback `.
  • Unterstützung für Gradle-Multi-Modul-Builds hinzugefügt, die mit QT_ANDROID_GRADLE_MULTI_MODULE aktiviert wird. Dies ist die Grundlage für Play Feature Delivery. CMake verwaltet die gesamte Bereitstellungspipeline ohne androiddeployqt oder Tools von Drittanbietern, wodurch Builds schneller und einfacher werden.
  • Die CMake-Variable „ QT_USE_ANDROID_MODERN_BUNDLE “ wurde zugunsten von „QT_ANDROID_GRADLE_MULTI_MODULE“ als veraltet markiert. Der alte Name wird aus Gründen der Abwärtskompatibilität weiterhin erkannt.
  • Unterstützung für die Eingabemethodenhinweise „ Qt::InputMethodHint::ImhNoFullscreen “, „ ImhDecimalNumbersOnly “ und „ ImhNoEditMenu “ hinzugefügt.
  • Durch Drücken der Zurück-Taste wird die Anwendung nun in den Hintergrund verschoben, anstatt sie zu beenden; siehe „Zurück-Taste“ und „Zurück-Geste“.
  • Verbesserungen der Barrierefreiheit für TalkBack:
    • Qt reagiert nun auf die Aktion „ ACTION_SHOW_ON_SCREEN “.
    • Qt meldet nun Änderungen des gescrollten Ansichtsbereichs und der Scrollposition.
    • Qt unterstützt nun die Zustände „expandable“ und „expanded“.
    • Die Soft-Tastatur öffnet sich nicht mehr, wenn der Barrierefreiheitsfokus auf ein Texteingabefeld wechselt.
    • Der Hinweis „ motionPreference “ spiegelt nun die Systemeinstellung „ Remove animations “ wider.
  • „androidtestrunner“ erkennt nun die Optionen „ --serial “ und „ --output “, erkennt die Trennung von Geräten während eines Testlaufs und gibt verbesserte Diagnosedaten zu Abstürzen und „Application Not Responding“ (ANR) aus.
  • Qt stellt nun die OpenSSL-Bibliotheken automatisch bereit, wenn der mitgelieferte FFmpeg-Build diese benötigt, und findet sie über „ OPENSSL_ROOT_DIR “ oder vcpkg.
  • Die Gradle-Vorlage erzwingt nicht mehr die Verwendung von resConfig "en".
Qt Quick für Android

iOS

  • QStandardPaths::PublicShareLocation gibt nun „ <APPROOT>/Public “ (entsprechend NSSharedPublicDirectory) zurück, anstatt des zuvor synthetisierten Pfads innerhalb des Verzeichnisses „Documents“.
  • standardLocations(PicturesLocation) enthält nun keinen doppelten Eintrag mehr für den beschreibbaren Pfad „Documents/Pictures“.
  • QStandardPaths::TemplatesLocation wird nun korrekt als unter iOS nicht unterstützt gemeldet, was der bestehenden Dokumentation entspricht.

Eingebettete Plattformen

Boot to Qt und Qt Onboard

  • Ab Qt 6.12 LTS stehen vorgefertigte „ Boot to Qt “-Images nicht mehr zum Download über Qt Online Installer oder über Ihr Qt-Konto zur Verfügung.

    Anstelle von Binärdateien werden zwei containerbasierte Bereitstellungspakete eingeführt:

    • Ein Build-Container: Eine einsatzbereite Umgebung, in der alle erforderlichen Build-Tools bereits vorinstalliert sind, sodass Sie auf schnelle Weise Yocto-basierte Linux-Images für Ihre Zielhardware erstellen können.
    • Ein Demo-Container: Enthält den Qt Demo Launcher mit einer kuratierten Auswahl vorab ausgewählter Demos, die die Funktionen von Qt sofort nach der Installation veranschaulichen.

    Die Container werden schrittweise im Rahmen des Patch-Release-Zyklus von Qt 6.12 LTS eingeführt, wobei die vollständige containerbasierte Bereitstellung noch vor der Veröffentlichung von Qt 6.12.4 bereitstehen wird.

  • Neue Plattformen:
    • Orange Pi 2
    • NXP i.MX95
    • Qualcomm Dragonwing IQ6
    • Qualcomm Dragonwing IQ9
    • Renesas RZ/G3E

Echtzeit-Betriebssysteme

QNX
  • Vulkan-Unterstützung unter QNX hinzugefügt.
  • Qt Multimedia Wird nun auf QNX 8.0 kompiliert. Audio-Wiedergabe und -Aufnahme sind noch nicht verfügbar, da das Audio-Backend für QNX SDP 8.0 noch nicht implementiert wurde.
VxWorks
  • Unterstützung für VxWorks 26.03 hinzugefügt.

WebAssembly

  • QAudioSource und „ QAudioSink “ verwenden nun das „AudioWorklets“-Backend der Web-Audio-API anstelle von OpenAL, was eine browser-native Audioaufnahme mit geringer Latenz ermöglicht.
  • Videobilder werden nun mithilfe von „ texImage2D “ für das Zero-Copy-Rendering in WebGL hochgeladen, wenn Qt Quick.
  • Unterstützung für „ QCameraFormat “ hinzugefügt.

Liste der API-Änderungen

Diese Seiten enthalten eine Übersicht über die API-Änderungen in Qt 6.12:

Bekannte Probleme

Informationen zu bekannten Problemen in Qt 6.12 finden Sie im Qt-Wiki.

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