标题:Qt 6 中的 Qt Extras 模块
作者:liudianwu
日期:2021-09-20 09:50
内容:
### 一、前言
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工具栏
QMacToolBarQMacToolBarItem 类已被删除。使用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。
仍然依赖该功能的客户端可以包含私有 ,并使用 QWindowsApplication 本机接口来注册新的 MIME 类 ..
#1 [liulin188 09-20 13:45]
变化还是挺大的
#2 [hitler++ 09-21 19:57]
估计永远不会升级到qt6,因为太多用户是用的win7
#3 [沉默小ai 09-22 08:25]
6.2估计开源用户升级不了了
#4 [angelus 09-22 16:09]
开发环境不支持win7可以理解,发布平台也不支持,就有点扯蛋了
#5 回 angelus 的帖子 [fsu0413 09-23 07:14]
angelus:开发环境不支持win7可以理解,发布平台也不支持,就有点扯蛋了 (2021-09-22 16:09)
并不扯蛋,试想一下5年前一款软件不支持XP是什么性质