Auf dieser Seite

Änderungen an Qt GUI

Qt 6 sind das Ergebnis bewusster Bemühungen, das Framework effizienter und benutzerfreundlicher zu gestalten.

Wir bemühen uns, bei jeder Version die Binär- und Quellkompatibilität für alle öffentlichen APIs zu gewährleisten. Einige Änderungen waren jedoch unvermeidlich, um Qt zu einem besseren Framework zu machen.

In diesem Abschnitt fassen wir diese Änderungen in „ Qt GUI “ zusammen und geben Hinweise zu deren Handhabung.

Kernel-Klassen

Die Klasse `QBitmap`

Die implizite Erstellung eines ` QBitmap ` aus einem ` QPixmap ` wird nicht mehr unterstützt. Der Konstruktor und der Zuweisungsoperator wurden explizit gestaltet und als veraltet gekennzeichnet. Verwenden Sie stattdessen die neue statische Factory-Funktion ` fromPixmap `.

Die Klasse „QCursor“

Die implizite Erstellung eines ` QCursor ` aus einem ` QPixmap ` wird nicht mehr unterstützt; der Konstruktor wurde explizit gestaltet.

Die Klasse „QKeyCombination“

QKeyCombination ist eine neue Klasse zum Speichern einer Kombination aus einer Taste und einem optionalen Modifikator. Sie sollte als Ersatz verwendet werden, um Werte aus der Enumeration „ Qt::Key “ auf typsichere Weise mit einem Modifikator zu kombinieren.

Wir empfehlen, Code zu migrieren, der derzeit den Operator `+()` zur Kombination von Tasten und Modifikatoren verwendet, da zukünftige C++-Standards arithmetische Operationen zwischen nicht verwandten Aufzählungstypen wahrscheinlich als unzulässig erklären werden. Verwenden Sie den Operator `|()` und passen Sie APIs, die eine ` int ` erwarten, so an, dass sie stattdessen eine ` QKeyCombination ` erwarten.

Bestehende APIs, die für eine Schlüsselkombination einen ` int ` erwarten, können mit ` QKeyCombination::toCombined()` aufgerufen werden.

Textklassen

Die Klasse `QFontDatabase`

Die Klasse „ QFontDatabase “ verfügt nun ausschließlich über statische Mitgliedsfunktionen. Der Konstruktor ist veraltet. Anstelle von z. B.

const QStringList fontFamilies = QFontDatabase().families();

verwenden Sie

const QStringList fontFamilies = QFontDatabase::families();

Die QFont-Klasse

Die numerischen Werte des Aufzählers „ QFont::Weight “ wurden geändert, um sie an die OpenType-Stärkewerte anzupassen. Die Methode „ QFont::setWeight()“ erwartet nun einen Aufzählungswert anstelle eines „ int “, und Code, der den Setter mit einer Ganzzahl aufruft, wird nicht kompiliert. Um weiterhin die alten Ganzzahlwerte zu verwenden, nutzen Sie „QFont::setLegacyWeight()“.

Zeichenklassen

Informationen zu „xml-ph-0000@deepl.internal“ und anderen druckbezogenen Klassen finden Sie im Portierungsleitfaden Qt Print Support Informationen zu „ QPagedPaintDevice “ und anderen druckbezogenen Klassen.

Hilfsklassen

QIntValidator und QDoubleValidator

Die Methode ` setRange()` ist nicht mehr als virtuell gekennzeichnet.

OpenGL-Klassen

Mit der Einführung von Qt RHI als Rendering-Grundlage in Qt wurden die meisten Klassen mit dem Präfix „ QOpenGL “ in das Qt OpenGL Modul verschoben.

Weitere Details finden Sie im Qt OpenGL -Portierungsleitfaden.

Eine bemerkenswerte Ausnahme bildet die Klasse „ QOpenGLContext “, die sich weiterhin im Modul „ Qt GUI “ befindet.

Zudem wurde die Klasse „ QOpenGLWidget “ in ein neues Modul namens „ Qt OpenGL Widgets“ verschoben.

Die Klasse `QOpenGLContext`

Die Funktion `QOpenGLContext::versionFunctions()` wurde durch ` QOpenGLVersionFunctionsFactory::get()` ersetzt. ` QOpenGLVersionFunctionsFactory ` ist nun eine öffentliche Klasse und Teil des Qt OpenGL Moduls.

ANGLE

Unter Windows ist ANGLE, ein OpenGL-ES-zu-Direct-3D-Konverter eines Drittanbieters, nicht mehr in Qt enthalten. Das bedeutet, dass „ Qt::AA_UseOpenGLES “ und die Umgebungsvariable „ QT_OPENGL=angle “ keine Wirkung mehr haben. Bei dynamischen OpenGL-Builds erfolgt kein automatischer Fallback auf ANGLE, falls die Initialisierung von OpenGL selbst fehlschlägt. Für Anwendungen auf Basis von „ QWindow “ oder „ QWidget “, die OpenGL direkt nutzen, beispielsweise über „ QOpenGLWidget “, bedeutet dies, dass OpenGL selbst die einzige Option zur Laufzeit ist. Die Alternative, eine reine Software-OpenGL-Implementierung wie „Mesa llvmpipe“ zu verwenden, die in den vorgefertigten Qt-Paketen enthalten ist, steht jedoch weiterhin zur Verfügung. Für Anwendungen unter Qt Quick und Qt Quick 3D führt Qt 6 zusätzlich zu OpenGL Unterstützung für Direct 3D 11, Vulkan und Metal ein. Unter Windows ist Direct 3D die Standardwahl, daher wird die Entfernung von ANGLE dadurch abgemildert, dass auch andere Grafik-APIs als OpenGL unterstützt werden.

Native Zwischenablage-Integration

Qt 5 stellte Schnittstellen zur Integration plattformspezifischer oder benutzerdefinierter Zwischenablageformate in Qt bereit, und zwar über „ QMacPasteboardMime “ in „ QtMacExtras “ sowie über „ QWindowsMime “ aus der Windows-QPA-API. Seit Qt 6.6 wird die entsprechende Funktionalität durch die Klassen „ QUtiMimeConverter “ für macOS und „ QWindowsMimeConverter “ für Windows bereitgestellt.

Die Portierung von QWindowsMime auf QWindowsMimeConverter erfordert praktisch keine Änderungen, da die virtuelle Schnittstelle identisch ist. In Qt 6 ist es jedoch nicht mehr erforderlich, eine QWindowsMimeConverter -Implementierung zu registrieren; durch die Instanziierung des Typs wird der Konverter implizit registriert.

Die Portierung von QMacPasteboardMime auf QUtiMimeConverter erfordert die Umbenennung einiger virtueller Funktionen. Beachten Sie, dass die QMacPasteboardMime -API den veralteten Begriff „ flavor “ für das native Zwischenablageformat unter macOS verwendete, während die Plattform nun „ Uniform Type Identifiers “, d. h. „ UTIs“, verwendet, was Qt bei den Funktions- und Parameternamen berücksichtigt hat.

Die Funktionen „ mimeFor “ und „ flavorFor “ werden durch die Implementierungen „ mimeForUti “ bzw. „ utiForMime “ ersetzt. Diese sollten den Namen des MIME-Typs oder der „ UTI “ zurückgeben, in die der Konverter das Eingabeformat konvertieren kann, sodass eine Portierung in der Regel lediglich die Umbenennung bestehender Überschreibungen erfordert. Die Funktionen „ convertToMime “, „ convertFromMime “ und „ count “ in „ QUtiMimeConverter “ sind identisch mit ihren „QMacPasteboardMime“-Versionen.

Die Funktionen „ canConvert “ und „ converterName “ werden nicht mehr benötigt, da sie durch die Implementierung der oben genannten Funktionen impliziert sind; daher können Überschreibungen dieser Funktionen entfernt werden.

Wie bei „ QWindowsMimeConverter “ erfolgt die Registrierung durch Instanziierung des Typs.

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