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

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.