Qt 6 is a result of the conscious effort to make the framework more efficient and easy to use.
We try to maintain binary and source compatibility for all the public APIs in each release. But some changes were inevitable in an effort to make Qt a better framework.
One of those changes was to remove the platform-specific Extras modules, to ensure a cohesive cross-platform story and future for Qt 6. Most of the the functionality offered by these modules are replaced by a similar functionality in other Qt modules. This guide summarizes those alternatives, and provides guidance for the cases where Qt does not offer a replacement API.
Most members of the QtMac namespace have explicit replacements. The QtMac::fromCGImageRef
function has been removed due to lack of known clients of the API.
The QMacPasteboardMime
class has been removed due to warranting a cross-platform solution. See QTBUG-93632 for details.
The QMacToolBar
and QMacToolBarItem
classes have been removed. Use QToolBar as a replacement.
Many members of the QtWin namespace have explicit replacements. To use these replacements with Qt Widgets or Qt Quick, operate on the QWindow representation of the relevant widget or control.
The remaining functions have been removed:
Only used internally in WinExtras. No other known clients of the API.
Concept exists on other platforms (tint/accent color). Warrants new cross-platform API, for example a new QPalette role or platform theme property.
Windows 7 feature. No longer supported in Windows 10.
Similar functionality exists on other platforms. Warrants cross-platform QWindow API to control the relationship between the client area and the non-client area (frame/titlebar). See QTBUG-94010 for details.
Deprecated as of Windows 8.
No known clients of the API.
The QWinMime
class has been removed due to warranting a cross-platform solution. See QTBUG-93632 for
details.
Clients that still rely on the functionality can include the private headers <QtGui/private/qtguiapplication_p.h>
and <QtGui/private/qwindowsmime_p.h>
and use the QWindowsApplication
native interface to register new MIME types. To enable private headers use QT += gui-private
with qmake
, or add a project dependency to Qt::GuiPrivate
with CMake
.
The QWinJumpList
, QWinJumpListCategory
, and QWinJumpListItem
classes have been removed due to warranting a cross-platform solution. See QTBUG-94007
for details.
The QWinTaskbarButton
and QWinTaskbarProgress
classes have been removed due
to warranting a cross-platform solution. See QTBUG-94009 and QTBUG-94008 for details.
The QWinThumbnailToolBar
and QWinThumbnailToolButton
classes have
been removed due to lack of known clients of the API.
The Qt X11 Extras module was removed in Qt 6.
Make sure to check you can get a QNativeInterface::QX11Application object from QGuiApplication, as in the following snippet:
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 that still rely on the functionality in QX11Info
class can include the private header <QtGui/private/qtx11extras_p.h>
as a stopgap
solution. To enable private headers use QT += gui-private
with qmake
, or add a project dependency to Qt::GuiPrivate
with CMake
.
Key functionality from the module has been brought over to other Qt modules.
Clients that still rely on missing functionality can include the private header <QtCore/private/qandroidextras_p.h>
as a stopgap solution. To enable private headers use QT += core-private
with
qmake
, or add a project dependency to Qt::CorePrivate
with CMake
.
The QAndroidJniObject
and QAndroidJniEnvironment
classes have been
replaced by QJniObject and QJniEnvironment respectively.
The QAndroidJniExceptionCleaner
class is no longer needed. See QJniEnvironment::checkAndClearExceptions() for a replacement.
Many members of the QtAndroid namespace have replacements in the QAndroidApplication native interface.