Änderungen an Qt Extras-Modulen
Qt 6 ist das Ergebnis der bewussten Bemühungen, das Framework effizienter und einfacher zu machen.
Wir versuchen, die Binär- und Quellcodekompatibilität für alle öffentlichen APIs in jeder Version zu erhalten. Aber einige Änderungen waren unvermeidlich, um Qt zu einem besseren Framework zu machen.
Eine dieser Änderungen bestand darin, die plattformspezifischen Extras-Module zu entfernen, um eine kohärente, plattformübergreifende Geschichte und Zukunft für Qt 6 zu gewährleisten. Die meisten der von diesen Modulen angebotenen Funktionen wurden durch ähnliche Funktionen in anderen Qt-Modulen ersetzt. Dieser Leitfaden fasst diese Alternativen zusammen und bietet eine Anleitung für die Fälle, in denen Qt keine Ersatz-API anbietet.
Änderungen an Qt Mac Extras
QtMac Namespace
Die meisten Mitglieder des QtMac-Namensraumes haben explizite Ersetzungen. Die Funktion QtMac::fromCGImageRef wurde entfernt, da keine Clients für diese API bekannt sind.
QMacPasteboardMime
Die Klasse QMacPasteboardMime wurde durch QUtiMimeConverter ersetzt. Siehe Änderungen an Qt GUI #Native Zwischenablage-Integration für Details.
QMacToolBar
Die Klassen QMacToolBar und QMacToolBarItem wurden entfernt. Verwenden Sie QToolBar als Ersatz.
Änderungen an Qt Windows Extras
QtWin Namespace
Viele Mitglieder des QtWin-Namensraumes haben explizite Ersetzungen. Um diese Ersetzungen mit Qt Widgets oder Qt Quick zu verwenden, arbeiten Sie mit der QWindow Repräsentation des entsprechenden Widgets oder Steuerelements.
Die verbleibenden Funktionen wurden entfernt:
errorStringFromHresult
Wird nur intern in WinExtras verwendet. Keine anderen bekannten Clients der API.
colorizationColor/isCompositionOpaque
Konzept existiert auf anderen Plattformen (Tint/Akzentfarbe). Erfordert eine neue plattformübergreifende API, z. B. eine neue QPalette Rolle oder eine Plattformthemeneigenschaft.
setWindowFlip3DPolicy
Windows 7-Funktion. Wird in Windows 10 nicht mehr unterstützt.
extendFrameIntoClientArea
Ähnliche Funktionen gibt es auch auf anderen Plattformen. Gewährleistet plattformübergreifende QWindow API zur Steuerung der Beziehung zwischen dem Client-Bereich und dem Nicht-Client-Bereich (Rahmen/Titelleiste). Siehe QTBUG-94010 für Details.
enableBlurBehind
Ab Windows 8 veraltet.
taskbarActivateTab und taskbar(Add/Delete)Tab
Keine bekannten Clients für die API.
QWinMime
Die Klasse QWinMime wurde durch QWindowsMimeConverter ersetzt. Siehe Änderungen an Qt GUI #Native Zwischenablage-Integration für Details.
QWinJumpList
Die Klassen QWinJumpList, QWinJumpListCategory und QWinJumpListItem wurden entfernt, um eine plattformübergreifende Lösung zu gewährleisten. Siehe QTBUG-94007 für Details.
QWinTaskbarButton
Die Klassen QWinTaskbarButton und QWinTaskbarProgress wurden entfernt, um eine plattformübergreifende Lösung zu gewährleisten. Siehe QTBUG-94009 und QTBUG-94008 für Details.
QWinThumbnailToolBar
Die Klassen QWinThumbnailToolBar und QWinThumbnailToolButton wurden entfernt, da es keine bekannten Clients für die API gibt.
Änderungen an Qt X11 Extras
Das Qt X11 Extras Modul wurde in Qt 6 entfernt.
- Für QX11Info::connection(), verwenden Sie stattdessen QNativeInterface::QX11Application::connection().
- Für QX11Info::display(), verwenden Sie stattdessen QNativeInterface::QX11Application::display().
- Für QX11Info::isPlatformX11(), prüfen Sie stattdessen die Existenz von QNativeInterface::QX11Application.
Vergewissern Sie sich, dass Sie ein QNativeInterface::QX11Application Objekt von QGuiApplication erhalten können, wie im folgenden Ausschnitt gezeigt:
Display *display = nullptr; xcb_connection_t *connection = nullptr; bool isPlatformX11 = false; if (auto *x11Application = qGuiApp->nativeInterface<QNativeInterface::QX11Application>()) { display = x11Application->display(); connection = x11Application->connection(); isPlatformX11 = true; } // or // isPlatformX11 = qGuiApp->nativeInterface<QNativeInterface::QX11Application>();
Clients, die immer noch auf die Funktionalität der QX11Info-Klasse angewiesen sind, können den privaten Header <QtGui/private/qtx11extras_p.h>
als Notlösung einbinden. Um private Header zu aktivieren, verwenden Sie QT += gui-private
mit qmake
, oder fügen Sie eine Projektabhängigkeit zu Qt::GuiPrivate
mit CMake
hinzu.
Änderungen an Qt Android Extras
Wichtige Funktionen des Moduls wurden in andere Qt-Module übernommen.
Clients, die noch auf die fehlende Funktionalität angewiesen sind, können den privaten Header <QtCore/private/qandroidextras_p.h>
als Zwischenlösung einbinden. Um private Header zu aktivieren, verwenden Sie QT += core-private
mit qmake
, oder fügen Sie eine Projektabhängigkeit zu Qt::CorePrivate
mit CMake
hinzu.
QAndroidJniObject und QAndroidJniEnvironment
Die Klassen QAndroidJniObject und QAndroidJniEnvironment wurden durch QJniObject bzw. QJniEnvironment ersetzt.
Die Klasse QAndroidJniExceptionCleaner wird nicht mehr benötigt. Siehe QJniEnvironment::checkAndClearExceptions() für einen Ersatz.
QtAndroid Namespace
Viele Mitglieder des QtAndroid-Namespace haben Ersatz in der nativen Schnittstelle QAndroidApplication.
Berechtigungen
Die Infrastruktur für Anwendungsberechtigungen ermöglicht es, eine Reihe von Berechtigungen plattformübergreifend anzufordern.
Der QtAndroidPrivate Namespace kann verwendet werden, um auf Android-spezifische Berechtigungen zuzugreifen, die nicht durch das plattformübergreifende Berechtigungssystem abgedeckt sind.
© 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.