One, foreword

  1. Qt 6 is the result of a conscious effort to make the framework more efficient and easy to use.
  2. We try to maintain binary and source code compatibility for all public apis in each release.
  3. But in order to make Qt a better framework, some changes are inevitable.
  4. One of the changes was to remove the platform-specific Extras module to ensure Qt 6’s cross-platform story and future cohesion.
  5. Much of the functionality provided by these modules has been replaced by similar functionality in other Qt modules, for example through new platform apis.

The rest of the apis usually fall into one of the following categories:

  • This feature has been deprecated on the relevant platform.
  • The API has no known internal or external clients.
  • This API overlaps with similar apis on other platforms, ensuring a cross-platform API.
  • In the latter two cases, we will continue to investigate whether future releases will require API replacement.

Qt Mac Extras changes

2.1 QtMac namespace

Most members of the QtMac namespace have explicit substitutions. This feature has been removed due to a lack of known clients for the API. For example QtMac: : fromCGImageRef.

2.2 QMacPasteboardMime

This class has been removed to ensure a cross-platform solution. See QtBug-93632 for more information.

2.3 QMac Toolbar

The QMacToolBar QMacToolBarItem class has been removed. Use QToolBar instead. There are third-party solutions, such as the MacHelper library.

Changes to Qt Windows Extras

3.1 QtWin Namespace

Many members of the QtWin namespace have explicit substitutions. To use these replacements with Qt Widgets or Qt Quick, operate on the QWindow representation of the relevant widget or control.

Other features have been removed:

  • Error strings from the result are only used internally in WinExtras. There are no other known API clients.
  • ColorizationColor/isCompositionOpaque concept exists in other platforms (hue/color). Ensure a new cross-platform API, such as a new QPalette role or platform theme attribute.
  • SetWindowFlip3DPolicy Windows 7 features. Windows 10 is no longer supported.
  • Extending the framework into the client area, similar capabilities exist on other platforms.
  • Ensure cross-platform QWindow APIS to control the relationship between client and non-client areas (frames/title bars). See QtBug-94010 for more information.
  • Enable BlurBehind, deprecated since Windows 8.
  • Taskbar ActivateTab and TaskBar (Add/Delete) tabs have no known API clients.

3.2 QWinMime

This class has been removed to ensure a cross-platform solution. See QtBug-93632 for more information. Still rely on the function of the client can contain private < QtGui/private/qtguiapplication_p h > < QtGui/private/qwindowsmime_p h >. The QWindowsApplication native interface is used to register new MIME types.

3.3 QWinJumpList

The QWinJumpList QWinJumpListCategory QWinJumpListItem class has been removed due to guaranteed cross-platform solutions, see QtBug-94007 for more information.

3.4 QWinTaskbarButton

The QWinTaskbarButton QWinTaskbarProgress class has been removed to ensure a cross-platform solution. See QTBug-94009 and QTBug-94008 for more information.

3.5 QWinThumbnailToolBar

Due to the lack of well-known client usage examples. QWinThumbnailToolBar QWinThumbnailToolBarButton class has been deleted.

Qt X11 Extras changes

  1. The QX11Info class has been removed.
  2. The QX11Info :: connect () and QX11Info :: show () methods have been replaced with QX11Application for the local interface QGuiApplication.
  3. Still rely on the function of the client can contain private head < QtGui/private/qtx11extras_p h > as a stopgap.
  4. To enable private headers, add project dependencies to Pro. QT += core-private

Qt Android Extras changes

  1. The key functions of this module have been transferred to other Qt modules.
  2. Still rely on the function of the client can contain private head < QtGui/private/qtandroidextras_p h > as a stopgap.
  3. QAndroidJniObject and QAndroidJniEnvironment have been replaced by QJniObject and QJniEnvironment respectively.
  4. QAndroidJniExceptionCleaner class has been QJniEnvironment: : checkAndClearExceptions () instead.
  5. Many members of the QtAndroid namespace are replaced in the QAndroidApplication native interface.
  6. Access request API has been cross-platform QCoreApplication: : requestPermission () API.