Qt 6 中的 Qt Extras 模块
2023-09-11 14:18:39 时间
一、前言
- Qt 6 是有意识地努力使框架更加高效和易于使用的结果。
- 我们尝试在每个版本中保持所有公共 API 的二进制和源代码兼容性。
- 但为了使 Qt 成为更好的框架,一些更改是不可避免的。
- 其中一项更改是删除特定于平台的 Extras 模块,以确保 Qt 6 的跨平台故事和未来具有凝聚力。
- 这些模块提供的大部分功能已被其他 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 的变化
- QX11Info 类已被删除。
- 所述QX11Info ::连接()和QX11Info ::显示()方法已经被替换为QX11Application为本地接口QGuiApplication。
- 仍然依赖该功能的客户端可以包含私有头<QtGui/private/qtx11extras_p.h>作为权宜之计。
- 要启用私有标头,将项目依赖项添加到pro。 QT += core-private
五、Qt Android Extras 的变化
- 该模块的关键功能已转移到其他 Qt 模块中。
- 仍然依赖该功能的客户端可以包含私有头<QtGui/private/qtandroidextras_p.h>作为权宜之计。
- QAndroidJniObject 和 QAndroidJniEnvironment 已被QJniObject和QJniEnvironment分别取代。
- QAndroidJniExceptionCleaner类已被 QJniEnvironment :: checkAndClearExceptions()取代。
- QtAndroid 命名空间的许多成员在QAndroidApplication本机接口中都有替换。
- 权限请求 API 已被跨平台QCoreApplication::requestPermission () API取代。
相关文章
- Qt生成ui文件对应的.h和.cpp文件
- python qt
- QT中操作Txt文件(Qt中QString与QByteArray互相转化方法)
- 解决qt程序运行时的cannot create Qt for Embedded Linux data directory: /tmp/qtembedded-0出错情形
- 【QT】Qt::UserRole的作用
- 【QT】Qt 给已经开发好的程序快速封装成动态库
- 【QT】测试Qt是否能连接上数据库
- 【QT】Qt 使用MSVC2017找不到编译器的解决办法
- 【QT】Qt 5 的程序:打印文档
- Qt开发之Go篇(七)
- Qt编写可视化大屏电子看板系统28-模块6送检合格
- Qt编写可视化大屏电子看板系统24-模块2当月计划
- Qt开源作品39-日志输出增强版V2022
- Qt编写安防视频监控系统65-子模块9数据调试
- Qt通用方法及类库6
- Qt编写安防视频监控系统14-本地回放
- Qt编写自定义控件47-面板区域控件
- Qt编写自定义控件18-魔法小鱼
- Qt编写通用主界面V2019
- Qt编写数据库通用翻页demo(开源)
- Qt网络模块如何使用(表格)
- QT中|Qt::Tool类型窗口自动退出消息循环问题解决(setQuitOnLastWindowClosed必须设置为false,最后一个窗口不显示的时候,程序会退出消息循环)
- 编译Qt 4.7.3的时候发生NMAKE : fatal error U1077: 'cd' : return code '0x2'
- 使用Qt.labs.settings来存储应用的设置
- ITK 4.8.1 Qt 5.4 MinGW 4.9.1 Configuration 配置