Qt 6 中的 Qt Extras 模块
一、前言
- 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 6 中的 Qt Extras 模块的更多相关文章
- 在Qt Creator中为Qt工程添加资源
1.右键单击工程 -> Add New ... -> Qt -> Qt Resource File -> Choose... -> Name: -> Next -& ...
- [Qt插件]-03创建Qt Designer自定义部件
如何创建自定义部件并添加到Qt Designer来爽快的拖动部件可视化界面设计? Qt Designer基于插件的架构使得它可以使用用户设计或者第三方提供的自定义部件,就像使用标准的Qt部件一样. ...
- CMake中添加Qt模块的合理方法
https://www.jianshu.com/p/7eeb6f79a275 转载自这里 用CMake来组织的工程中要用Qt首先要设置.找到Qt相关模块.主要是通过find_package这个CMak ...
- 在Qt(C++)中与Python混合编程
一.PythonQt库 在Qt(C++)中与Python混合编程,可以使用PythonQt库. 网站首页:http://pythonqt.sourceforge.net 下载页面:https://so ...
- QtCore是Qt的精髓(包括五大模块:元对象系统,属性系统,对象模型,对象树,信号槽)
作者:小豆君的干货铺链接:https://www.zhihu.com/question/27040542/answer/218384474来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业 ...
- Qt Creator中的3D绘图及动画教程(参照NeHe)
Qt Creator中的3D绘图及动画教程(参照NeHe) http://blog.csdn.net/cly116/article/details/47184729 刚刚学习了Qt Creator,发 ...
- Qt Pro文件与Qt模块启用
看qt论坛中经常有人忘记 QT+=network 等语句.随便写写吧,或许对他人有帮助. 一.从哪开始呢 不妨先看个例子吧: #include <QtCore/QCoreApplication& ...
- qt quick中qml编程语言
Qt QML 入门 — 使用C++定义QML类型 发表于 2013 年 3 月 11 日 注册C++类 注册可实例化的类型 注册不实例化的QML类型 附带属性 注册C++类 注册可实例化的类型 如 ...
- 29.qt quick-在QML中调用C++类
1.Qml调用C++类 Qt QML模块提供了一组API,用来将C++类扩展QML中.您可以编写扩展来添加自己的QML类型,扩展现有的Qt类型,或调用无法从普通QML代码访问的C/C++函数本章将学习 ...
- QT笔记之VS2010 Qt中导入qrc资源文件
转载1:http://qimo601.iteye.com/blog/1404693 转载2:http://blog.sina.com.cn/s/blog_92cde3060101lobm.html 转 ...
随机推荐
- 分享几个实用且高效的EF Core扩展类库,提高开发效率!
前言 今天大姚给大家分享3款开源且实用的EF Core扩展类库,希望能帮助你在使用 EF Core 进行数据库开发变得更加高效和灵活,提高开发效率. EF Core介绍 Entity Framewor ...
- Codeforces 做题记录 2023-10-22
远古做题记录.大概是 22 年写的. CF1858E1 Rollbacks (Easy Version) Description 给定一个初始为空的数列 \(a\),你需要处理以下操作: + x 将数 ...
- 宏定义define的用法
#define read(x) scanf("%d",&x); 这行代码是一个宏定义,使用了 C 语言中的 #define 指令.它的作用是定义一个名为 read 的宏,用 ...
- 云原生周刊:Flux 2.3 发布 | 2024.5.20
开源项目推荐 kubeinvaders kubeinvaders 专为 Kubernetes 用户设计.它提供了一种有趣而交互式的方式来探索和可视化您的 Kubernetes 集群.通过类似游戏的界面 ...
- C++ 字面值常量的类型
在C++中,字面常量(literal constant)即无需定义可以直接写出来的量.字面常量的值一望便知,但是他的数据类型往往不能被准确分辨(尤其是使用auto时). 我们直接写出来的有确定值的量就 ...
- 基于Java+SpringBoot心理测评心理测试系统功能实现四
一.前言介绍: 1.1 项目摘要 心理测评和心理测试系统在当代社会中扮演着越来越重要的角色.随着心理健康问题日益受到重视,心理测评和心理测试系统作为评估个体心理状态.诊断心理问题.制定心理治疗方案的工 ...
- Codeforces 983 A-E
题解 A 难度:黄 算法标签:数学.进制 题目翻译:给定进制 \(b\) 和分数 \(\frac{p}{q}\),求这个分数在 \(b\) 进制下是否是有限小数. 题目分析: 首先将分数化简(不用说了 ...
- 开源 PHP 商城项目 CRMEB 二次开发和部署教程
上篇文章给大家介绍了如何使用 Sealos 应用商店一键部署 CRMEB 开源商城系统,那速度真叫一个快啊,比宝塔快多了! 但是有些读者还不满足于此,问我能不能边运行边改代码,而且还得用 Cursor ...
- Grafana如何利用Karpenter消除50%的云资源浪费?|落地案例
原文链接: https://grafana.com/blog/2023/11/09/how-grafana-labs-switched-to-karpenter-to-reduce-costs-and ...
- PA1-碎碎念
part 1 8.27 方便管理,主要是想熟悉下git的操作 先创建并且切换到一个新的分支: git commit --allow-empty -am "before starting PA ...