一、前言

  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取代。

Qt 6 中的 Qt Extras 模块的更多相关文章

  1. 在Qt Creator中为Qt工程添加资源

    1.右键单击工程 -> Add New ... -> Qt -> Qt Resource File -> Choose... -> Name: -> Next -& ...

  2. [Qt插件]-03创建Qt Designer自定义部件

    如何创建自定义部件并添加到Qt Designer来爽快的拖动部件可视化界面设计?   Qt Designer基于插件的架构使得它可以使用用户设计或者第三方提供的自定义部件,就像使用标准的Qt部件一样. ...

  3. CMake中添加Qt模块的合理方法

    https://www.jianshu.com/p/7eeb6f79a275 转载自这里 用CMake来组织的工程中要用Qt首先要设置.找到Qt相关模块.主要是通过find_package这个CMak ...

  4. 在Qt(C++)中与Python混合编程

    一.PythonQt库 在Qt(C++)中与Python混合编程,可以使用PythonQt库. 网站首页:http://pythonqt.sourceforge.net 下载页面:https://so ...

  5. QtCore是Qt的精髓(包括五大模块:元对象系统,属性系统,对象模型,对象树,信号槽)

    作者:小豆君的干货铺链接:https://www.zhihu.com/question/27040542/answer/218384474来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业 ...

  6. Qt Creator中的3D绘图及动画教程(参照NeHe)

    Qt Creator中的3D绘图及动画教程(参照NeHe) http://blog.csdn.net/cly116/article/details/47184729 刚刚学习了Qt Creator,发 ...

  7. Qt Pro文件与Qt模块启用

    看qt论坛中经常有人忘记 QT+=network 等语句.随便写写吧,或许对他人有帮助. 一.从哪开始呢 不妨先看个例子吧: #include <QtCore/QCoreApplication& ...

  8. qt quick中qml编程语言

    Qt QML 入门 — 使用C++定义QML类型 发表于 2013 年 3 月 11 日   注册C++类 注册可实例化的类型 注册不实例化的QML类型 附带属性 注册C++类 注册可实例化的类型 如 ...

  9. 29.qt quick-在QML中调用C++类

    1.Qml调用C++类 Qt QML模块提供了一组API,用来将C++类扩展QML中.您可以编写扩展来添加自己的QML类型,扩展现有的Qt类型,或调用无法从普通QML代码访问的C/C++函数本章将学习 ...

  10. QT笔记之VS2010 Qt中导入qrc资源文件

    转载1:http://qimo601.iteye.com/blog/1404693 转载2:http://blog.sina.com.cn/s/blog_92cde3060101lobm.html 转 ...

随机推荐

  1. 56.dom如何映射数据

    所谓的映射机制就是 页面的标签和js中获取的页面标签对象,无论修改哪一个,另一个都会随之更新 : 映射原理:浏览器在渲染页面的时候给每一个元素都设置了很多内置的属性(包含样式的),     当我们在J ...

  2. 什么是AI网关?AI网关在企业系统中承担什么角色?

    AI 大模型的发展正在推动各行业的增长,据有关报告显示:"未来十年内预计年均增长率将达到37.3%,全球企业预计在2027年之前将在AI领域投入8000亿美元".这一迅猛发展促使许 ...

  3. WTConv:小参数大感受野,基于小波变换的新型卷积 | ECCV'24

    近年来,人们尝试增加卷积神经网络(CNN)的卷积核大小,以模拟视觉Transformer(ViTs)自注意力模块的全局感受野.然而,这种方法很快就遇到了上限,并在实现全局感受野之前就达到了饱和.论文证 ...

  4. GE反射内存卡的指标和型号

    产品特性: • 1路发送,1路接收: • 光纤高速网络2.12GHz: • 最大256个节点: • 光纤协议不占用CPU资源: • 多模光纤节点距离300米:单模光纤节点距离10千米: • 板载128 ...

  5. 操作系统_MPI程序设计

    一.实验环境搭建 本次MPI集群环境是在电脑中安装mpi的sdk和应用程序后在visual studio 2022 上配置MPI环境. VC++目录--->包含目录--->添加MPI的in ...

  6. 【小记】Docker容器间SSH公钥自动交换实现免密登录的一次尝试

    咋想到这茬了 最近开始忙毕设的事儿了,想部署个伪分布式的Spark + Hadoop集群来进行测试.思来考去,最终咱把目光放在了Docker上. 盘了两天,发现这玩意意外的有趣,镜像构建好后开箱即用, ...

  7. linux环境安装pip

    1.下载pip安装包 https://files.pythonhosted.org/packages/ce/ea/9b445176a65ae4ba22dce1d93e4b5fe182f953df71a ...

  8. SaaS多租户的3种隔离模式

    大家好,我是汤师爷~ 在SaaS模式下,多租户之间的资源隔离是基础且关键的一环.SaaS服务商需要在确保运营效率和控制成本的前提下,搭建一个让多个租户能够同时访问的共享环境. 虽然大家都在用同一套Sa ...

  9. ConsulManager应用场景1:如何优雅的基于Consul自动同步ECS主机监控

    [ConsulManager介绍] Consul字段设计说明 服务首次启动时会创建一个随机秘钥,存放到consul_kv的/ConsulManager/assets/secret/skey,该秘钥用于 ...

  10. 使用switch语句的注意事项

    目录 case后需要手动break switch内的变量定义 变量没有定义在语句块内 变量定义在语句块内 表述多情况时不能用逗号 case后需要手动break switch(i){ case 1: 语 ...