Qt 6 中的 Qt Extras 模塊


一、前言

  1. Qt 6 是有意識地努力使框架更加高效和易於使用的結果。
  2. 我們嘗試在每個版本中保持所有公共 API 的二進制和源代碼兼容性。
  3. 但為了使 Qt 成為更好的框架,一些更改是不可避免的。
  4. 其中一項更改是刪除特定於平台的 Extras 模塊,以確保 Qt 6 的跨平台故事和未來具有凝聚力。
  5. 這些模塊提供的大部分功能已被其他 Qt 模塊中的類似功能所取代,例如通過新的平台 API。

其余 API 通常屬於以下三類之一:

  • 該功能在相關平台中已被棄用。
  • API 沒有已知的內部或外部客戶端。
  • 該 API 與其他平台上的類似 API 重疊,保證了跨平台 API。
  • 對於后兩種情況,我們將繼續調查未來版本是否需要替換 API。

二、Qt Mac Extras 的變化

2.1 QtMac 命名空間

QtMac 命名空間的大多數成員都有顯式替換。由於缺少 API 的已知客戶端,該功能已被刪除。例如 QtMac::fromCGImageRef 。

2.2 QMacPasteboardMime

由於保證跨平台解決方案,該類已被刪除。有關詳細信息,請參閱QTBUG-93632。

2.3 QMac工具欄

QMacToolBar QMacToolBarItem 類已被刪除。使用QToolBar作為替代。還有第三方解決方案,例如MacHelper庫。

三、對 Qt Windows Extras 的更改

3.1 QtWin 命名空間

QtWin 命名空間的許多成員都有顯式替換。要將這些替換與 Qt Widgets 或 Qt Quick 一起使用,請對相關小部件或控件的QWindow表示進行操作。

其余功能已被刪除:

  • 錯誤字符串從結果僅在 WinExtras 內部使用。沒有其他已知的 API 客戶端。
  • colorizationColor/isCompositionOpaque概念存在於其他平台上(色調/強調色)。保證新的跨平台 API,例如新的QPalette角色或平台主題屬性。
  • setWindowFlip3DPolicy Windows 7 功能。Windows 10 不再支持。
  • 擴展框架進入客戶區,其他平台上也存在類似的功能。
  • 保證跨平台QWindow API 來控制客戶區和非客戶區(框架/標題欄)之間的關系。有關詳細信息,請參閱QTBUG-94010。
  • 啟用BlurBehind,自 Windows 8 起棄用。
  • taskbarActivateTab 和 taskbar(Add/Delete)Tab 沒有已知的 API 客戶端。

3.2 QWinMime

由於保證跨平台解決方案,該類已被刪除。有關詳細信息,請參閱QTBUG-93632。
仍然依賴該功能的客戶端可以包含私有 <QtGui/private/qtguiapplication_p.h> <QtGui/private/qwindowsmime_p.h>,並使用 QWindowsApplication 本機接口來注冊新的 MIME 類型。

3.3 QWinJumpList

由於保證跨平台解決方案,QWinJumpList QWinJumpListCategory QWinJumpListItem 類已刪除,有關詳細信息,請參閱QTBUG-94007。

3.4 QWinTaskbarButton

由於保證跨平台解決方案,QWinTaskbarButton QWinTaskbarProgress 類已被刪除。有關詳細信息,請參閱QTBUG-94009和QTBUG-94008。

3.5 QWinThumbnailToolBar

由於缺乏知名客戶端使用示例。QWinThumbnailToolBar QWinThumbnailToolBarButton 類已刪除。

四、Qt X11 Extras 的變化

  1. QX11Info 類已被刪除。
  2. 所述QX11Info ::連接()和QX11Info ::顯示()方法已經被替換為QX11Application為本地接口QGuiApplication。
  3. 仍然依賴該功能的客戶端可以包含私有頭<QtGui/private/qtx11extras_p.h>作為權宜之計。
  4. 要啟用私有標頭,將項目依賴項添加到pro。 QT += core-private

五、Qt Android Extras 的變化

  1. 該模塊的關鍵功能已轉移到其他 Qt 模塊中。
  2. 仍然依賴該功能的客戶端可以包含私有頭<QtGui/private/qtandroidextras_p.h>作為權宜之計。
  3. QAndroidJniObject 和 QAndroidJniEnvironment 已被QJniObject和QJniEnvironment分別取代。
  4. QAndroidJniExceptionCleaner類已被 QJniEnvironment :: checkAndClearExceptions()取代。
  5. QtAndroid 命名空間的許多成員在QAndroidApplication本機接口中都有替換。
  6. 權限請求 API 已被跨平台QCoreApplication::requestPermission () API取代。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM