admin管理员组

文章数量:1530521

问题描述

提示:这里描述具体问题:需要在windows10上开发一个UI界面,现在需求就是如何选择Qt版本。

综合网上的信息,可以得出结论安装Qt5.15版本。理由:

那么 Qt 5 的各个版本,该如何选择呢?
Qt 5.9 作为LTS也已经在2020年5月31日停止更新了,所以建议使用目前依旧在更新的LTS:5.12 与 5.15。
能直接使用 Qt 5.15 当然是最好的,若实在有难处,就用 5.12 吧,但至少别再用 Qt 5.9 之前的版本了。

如果你需要用到 QtWebkit,则只能用 Qt5.5及其以前的版本。
如果你需要 PDF 的支持,建议升级至 5.15,因为新增模块 Qt PDF
如果你需要 SSL 的支持,建议升级至 5.15,因为 5.13 开始已自支持 OpenSSL 1.1 及其以上。
如果你常用 QImage,建议升级至 5.15,因为缩放和转换的许多方法都升级成多线程的。
如果你常用 QtQuick,建议升级至 5.15,因为 5.14 开始 QtQuick 不再局限于 OpenGL 引擎加速。
如果你常用 QNetworkAccessManager,建议升级至 5.15,因为开始支持超时设置 setTransferTimeout
如果你发行在 Windows 平台,建议升级至 5.15,因为 5.14 开始对高DPI的设备有更好的支持。
如果你需要开发 安卓APP,建议升级至 5.15,因为该版本完善了安卓开发文档。

特别说明
已自支持 OpenSSL 是很实用很实用的。
QNetworkAccessManager 的 setTransferTimeout 超时设置 是很实用很实用的。
现在很多设备,特别是笔记本,都是高分屏设备,对高分屏的良好支持是 5.14 开始的。
对触摸屏设备的良好支持,是 Qt 5.12 开始的。
有些高富帅设备,既是高分屏,又是触摸屏,例如 surface ,那必须 5.14 至少。
有些对话框的标题栏,会出现“?”按钮,叫“这是什么”的提示,很讨厌。 5.10 支持移除。

以下是 Qt 5.9 之后,各个版本比较重要的新特性:

Qt 5.15 LTS 维护至 2023年5月29日
https://wiki.qt.io/New_Features_in_Qt_5.15
QFile :: moveToTrash,将文件移动到回收站(以前只能直接删除文件)
QThreadPool :: start、tryStart,开始支持lambda
添加了静态模板QDebug :: toString函数,该函数将给定的对象传输到对字符串进行操作的QDebug实例中,然后返回该字符串。
QImage 的缩放和转换的许多方法都升级成多线程的。
QNetworkAccessManager 开始支持超时设置。
QWebEngineHistory 添加 clear
QWebSocket 开始支持设置最大帧大小和消息大小。
Qt Android 完善了开放文档
新模块 Qt PDF

Qt 5.14
https://wiki.qt.io/New_Features_in_Qt_5.14
更新了High-DPI支持。
QTextDocument支持读写Markdown格式,以替代HTML。
添加了独立于图形API的Scenegraph渲染器的第一个预览。这允许在Vulkan,Metal或Direct3D 11而不是OpenGL上运行合格的Qt Quick应用程序。

Qt 5.13
https://wiki.qt.io/New_Features_in_Qt_5.13
Windows 平台开始自带支持 OpenSSL
新增平台 Qt for WebAssembly
安卓平台 的QFile 开始支持 Urls

Qt 5.12 LTS 维护至 2021年12月6日
https://wiki.qt.io/New_Features_in_Qt_5.12
基于Windows 8及更高版本上的Windows指针输入消息,以统一的实现方式替代了平板电脑/触摸屏/触摸板/鼠标输入的处理。

Qt 5.11
https://wiki.qt.io/New_Features_in_Qt_5.11
QML性能大幅增强
Qt 3D CPU 占用大幅减少
Window 平台更新了易用性支持。

Qt 5.10
https://wiki.qt.io/New_Features_in_Qt_5.10
添加了QIODevice :: skip()
添加了跨平台Vulkan启动器:QVulkanInstance
QWidget :: createWindowContainer()现在可在Android上使用
QOpenGLWidget现在可用于呈现和读取(抓取)屏幕外内容。
添加了AA_DisableWindowContextHelpButton属性,可防止Windows对话框上的自动“这是什么”按钮
新方法QWebEnginePage :: download用于以编程方式开始下载。
新增模块 Qt Speech 用于文本转语音

Qt 5.9 LTS 已于2020年5月31日终止维护,不建议使用及其以前的版本
https://wiki.qt.io/New_Features_in_Qt_5.9

另:
t4.8.7是Qt4的终结版本,是Qt4系列版本中最稳定最经典的(很多嵌入式板子还是用Qt4.8),其实该版本是和Qt5.5差不多时间发布的。

Qt5.6.3最最后支持xp系统的长期支持版本,Qt5.7.0是最后支持xp系统的非长期支持版本(有可能有极少数函数不支持,个人没遇到过)。

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

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

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

Qt5.15系列是最后支持win7的版本,后面的Qt6系列版本需要更改源码编译才能支持win7,这对于小白来说难于上青天。

Qt6.0/6.1版本其实也是支持win7的,但是因为缺失太多模块,而且BUG成山,大佬说了狗都不用,所以使用此版本没意义。

Qt6不支持win7,是说开发阶段和运行阶段都不支持,无论开发阶段还是运行阶段你都需要Qt的库,只要是Qt的库不支持,到哪里也不支持。

新版的qtc7由于采用Qt6编译,所以也只能在win10及以上运行,意味着你要用新的qtc7+Qt5做开发也必须用win10及以上。

欢迎各位补充,比如哪个版本以后商用需要收费之类的,貌似用Qt4,在不更改Qt本身源码,动态库发布程序,法律风险小一些?

Qt官方除了Qt库一直在升级外,对应的集成开发环境也在更新升级,一般会选用最新的Qt库编译新版本,要注意的是,有些人安装的旧版本的qtc,加载比较高版本的Qt库,很容易出现报错提示 Project ERROR: Cannot run compiler ‘g++’. Maybe you forgot to setup the environment? 之类的,一般是版本跨度过大,比如用Qt5.5附带的qtc加载Qt5.9的库,导致有些环境识别不到,可能是qtc在新版本中对某些识别处理规则有变动。所以一般建议可以用新的qtc加载旧的Qt库,不建议旧的qtc加载新的Qt库。


欢迎评论:

提示:欢迎大家在评论区讨论相关问题。
可以关注博主,我会持续更新工作中遇到的技术小砖头,供大家使用。
也可以在评论区告知好的小砖头或技术,我会收录。
还可以指出本博文错误,希望大家不吝赐教。

本文标签: 版本QT