Qt5和Qt6的区别

Qt4和Qt5的区别
之前有做过将项目从QT4迁移到QT5的操作,所以写了一篇QT4和Qt5的区别。在最近这一年接触过Qt6后,所以想要介绍一下Qt6和Qt5的区别,通过自己的试用感受和结合网上各路大佬的点拨,有了一个大概的了解。
各稳定版本:

Qt4: 4.8.7 4.X 系列终结版本
Qt5 : 5.6 LTS 长期支持版本
Qt5: 5.9 LTS 长期支持版本
Qt5:5.12 LTS 长期支持版本
Qt5: 5.15 LTS 长期支持版本

各版本介绍:

1、Qt4.8.7是Qt4的终结版本,是Qt4系列版本中最稳定最经典的(很多嵌入式板子还是用Qt4.8),其实该版本是和Qt5.5差不多时间发布的。(大版本之间存在同时开发维护)

2、 Qt5.6.3最最后支持xp系统的长期支持版本,Qt5.7.0是最后支持xp系统的非长期支持版本。

3、 Qt5.12.3是最后提供mysql数据库插件的版本,往后的版本需要自行编译对应的mysql数据库插件,官方安装包不再提供。

4、Qt5.12.5是最后样式表性能最高的版本,经过酷码大佬查阅代码发现此后版本的样式表源码中为了修复一个bug做了循环嵌套设置,导致性能急剧下降,界面越多性能暴降10倍以上。

5、Qt5.14.2是最后提供二进制安装包的版本,后面的版本都需要在线安装。

6、 Qt5.15系列是最后支持win7的版本,后面的Qt6系列版本需要更改源码编译才能支持,这对于小白来说难于上青天。_Qt_5.15
QFile :: moveToTrash,将文件移动到回收站(以前只能直接删除文件)
QThreadPool ::start、tryStart,开始支持lambda 添加了静态模板
QDebug ::toString函数,该函数将给定的对象传输到对字符串进行操作的QDebug实例中,然后返回该字符串。
QImage的缩放和转换的许多方法都升级成多线程的。
QNetworkAccessManager 开始支持超时设置。
QWebEngineHistory添加 clear QWebSocket 开始支持设置最大帧大小和消息大小。 Qt Android 完善了开放文档。

区别

1、Qt6上使用cmake进行项目构建更加的方便,原因就是Qt6的框架就是通过cmake来构建的,针对cmake构建项目做了一定的优化。当然qmake也同样支持。
2、Qt6默认支持C++17,在Qt5上默认支持的是C++14和C++11,当然如果想要Qt5也支持C++17,可以在Pro文件中将CONFIG += C++14改为17。
3、QML性能和丰富度上得到的较大的提升。
4、Linux上OpenGL的指定继承者Vulkan,Apple正在推动的Metal等图像接口的发展,Qt5依赖OpenGL已经不够用,现在,Qt 6 加入了大量不同平台的图形 API(OpenGL、Metal、Vulcan 和、Direct3D),以确保用户可以在所有平台上以最高性能运行 Qt。
5、Qt Quick 统一 2D 和 3D。将2D和3D内容合并到一个堆栈中。
6、浏览器内核进行了更新,对网页端(QWeb模块)进行了优化,取消掉了默认缓存页,改成了无痕浏览。
7、对一些数据结构如QList,QVecter,QMap,QHash的接口进行的取消,如指定删除的接口。
8、QNetworkAccessManager 默认启用 HTTP/2 协议。
9、QNetworkInformation ,引入新属性 BehindCaptivePortal,可用于查看用户是否连接到
具有强制网络门户的网络。

猜你喜欢

转载自blog.csdn.net/weixin_43246170/article/details/133039005
Qt5