Qt最好用评价最高的是哪个版本?

2024-06-08 02:18
文章标签 评价 qt 最好 版本 最高

本文主要是介绍Qt最好用评价最高的是哪个版本?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

来源:https://www.zhihu.com/question/53425270

来源: http://www.qtcn.org/bbs/read-htm-tid-89455.html

 

///

Qt4:    4.8.7      4.X 系列终结版本

Qt5 :   5.6 LTS  长期支持版本

Qt5:    5.9 LTS  长期支持版本

Qt5:    5.12 LTS 长期支持版本

Qt5:    5.15 LTS 长期支持版本

Qt 6 : ???

 

/

Qt 6 已经在2020年12月8日发布了。
但你没有看错,这篇是谈 Qt 5 攻略。
毕竟 Qt 6 在 Win 平台将只支持 Win10 及其以上。所以大批 Win7、XP 党 无缘 Qt 6。

而且 Qt6 为了赶进度,早期版本里缺少了很多模块,例如 图表、数据可视化、WebEngine
所以也没必要急着尝鲜 Qt 6 ,建议等完整版出来后,再升级也不迟。

那么 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

 

///

如果是嵌入式类应用的还是暂时用4.8系

如果PC应用,GPU不错的试试最新版5.X,界面更美观

///

 

我个人从Qt4.7.0开始用起,之间用过4.8系列,Qt5.2,5.3,5.4,5.5,5.6,5.7,5.8。最后选用Qt4.8.7作为最终解决方案,正如官网所说,Qt4.8.7是Qt4系列的终结版本,解决了以往的所有BUG。而且是打包需要带的动态库最小的,压缩下基本上在3MB左右。CPU占用也是最小的,我对比过好多个版本,Qt4.8.7是最好的。下面这个程序就是Qt4.8.7打包的,包含的功能强大,打包压缩极小。

 

///

Qt发展到现在,哪还会有一个版本最好用这样的说法。

只有最合适,最匹配需求的版本之说。

那么这个之说到底是什么说呢,我举几个例子。

如果你希望体验新功能,比如说5.8中的qmlc缓存机制(用于提升程序启动速度),并且对将来新版本Qt的新功能充满期待,愿意不断的学习,觉得越新越好。并且愿意接受因为新版本升级带来的新问题(其实往上兼容,基本上不会遇到什么问题)。那么可以考虑追一下新版本。目前Qt最新版本是Qt5.8.0。我也一路追到了这个版本。从我追版本的感受来看,基本上是瑕不掩瑜的。当然也不乏升级后,整个程序无法使用,然后修改了半天才恢复正常的事情。

或者说,你的设备是老的嵌入式设备,性能有限。而且因为种种原因,根本不考虑使用QtQuuick,只使用QtWidgets。或者说所拥有的环境或者工具链也比较老,对Qt5支持很差。那么这时候,基本就只能用Qt4了。而如果是在Qt4里面选,那么推荐是4.8.6。这是Qt官方上最后一个Qt4版本。别看是Qt4,这个更新是在14年6月。也没那么的老。

或者说,你希望在一个稳定的Qt版本基础上,开发一个产品级应用。不希望版本中的功能经常发生太多的变化,被发现的新问题可以被及时修复。并且希望Qt对这个版本进行长时间的维护,那么可以选择Qt5.6的版本,这是一个LTS(长期支持)版本,计划的维护时间是3年。到现在应该是快满1年了。还剩余2年的时间。不过也说不定到时候官方会延长这个支持的时间。

或者说,公司其实已经钦定了一个版本,尤其是做嵌入式,涉及到太多的东西。那么这时候,只要主要功能都能用,满足绝大部分需求,我建议还是不要修改大版本比较好,因为版本迁移,会带来太多的隐患,有时候不光是Qt自己的,还有工具链升级导致的衍生bug。

或者说,其实你的嵌入式设备,比如说树莓派,并没有丰富的工具链或者环境或者公版Qt(已经编译好,可以直接用)提供使用,那么这时候,选择这个设备下相对受欢迎或者相对使用较多的版本,是一个合适的选择。

不过啊,如果你只是开启一个新的项目,需要一个简单并且快速的结论,那么我的建议是使用QtQuick,Qt5.8(越新越好

///

 

 

 

 

 

 

 

这篇关于Qt最好用评价最高的是哪个版本?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1040959

相关文章

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo

【QT】基础入门学习

文章目录 浅析Qt应用程序的主函数使用qDebug()函数常用快捷键Qt 编码风格信号槽连接模型实现方案 信号和槽的工作机制Qt对象树机制 浅析Qt应用程序的主函数 #include "mywindow.h"#include <QApplication>// 程序的入口int main(int argc, char *argv[]){// argc是命令行参数个数,argv是

Python QT实现A-star寻路算法

目录 1、界面使用方法 2、注意事项 3、补充说明 用Qt5搭建一个图形化测试寻路算法的测试环境。 1、界面使用方法 设定起点: 鼠标左键双击,设定红色的起点。左键双击设定起点,用红色标记。 设定终点: 鼠标右键双击,设定蓝色的终点。右键双击设定终点,用蓝色标记。 设置障碍点: 鼠标左键或者右键按着不放,拖动可以设置黑色的障碍点。按住左键或右键并拖动,设置一系列黑色障碍点

使用Qt编程QtNetwork无法使用

使用 VS 构建 Qt 项目时 QtNetwork 无法使用的问题 - 摘叶飞镖 - 博客园 (cnblogs.com) 另外,强烈建议在使用QNetworkAccessManager之前看看这篇文章: Qt 之 QNetworkAccessManager踏坑记录-CSDN博客 C++ Qt开发:QNetworkAccessManager网络接口组件 阅读目录 1.1 通用API函数

PostgreSQL中的多版本并发控制(MVCC)深入解析

引言 PostgreSQL作为一款强大的开源关系数据库管理系统,以其高性能、高可靠性和丰富的功能特性而广受欢迎。在并发控制方面,PostgreSQL采用了多版本并发控制(MVCC)机制,该机制为数据库提供了高效的数据访问和更新能力,同时保证了数据的一致性和隔离性。本文将深入解析PostgreSQL中的MVCC功能,探讨其工作原理、使用场景,并通过具体SQL示例来展示其在实际应用中的表现。 一、

InnoDB的多版本一致性读的实现

InnoDB是支持MVCC多版本一致性读的,因此和其他实现了MVCC的系统如Oracle,PostgreSQL一样,读不会阻塞写,写也不会阻塞读。虽然同样是MVCC,各家的实现是不太一样的。Oracle通过在block头部的事务列表,和记录中的锁标志位,加上回滚段,个人认为实现上是最优雅的方式。 而PostgreSQL则更是将多个版本的数据都放在表中,而没有单独的回滚段,导致的一个结果是回滚非

Qt多语种开发教程

Qt作为跨平台的开发工具,早已应用到各行各业的软件开发中。 今天讲讲,Qt开发的正序怎么做多语言开发。就是说,你设置中文,就中文显示;设置英语就英文显示,设置繁体就繁体显示,设置发育就显示法语等。 开发环境(其实多语种这块根环境没太大关系):win10,Qt.5.12.10 一.先用QtCreator创建一个简单的桌面程序 1.工程就随便命名“LanguageTest”,其他默认。 2.在设计师

JeecgBoot 升级springboot版本到2.6.0

1. 环境描述 Jeecgboot 3.0,他所依赖的springboot版本为2.3.5Release,将springboot版本升级为2.6.0。过程全纪录,从2开始描述。 2. 修改springboot版本号 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-pare

Qt中window frame的影响

window frame 在创建图形化界面的时候,会创建窗口主体,上面会多出一条,周围多次一圈细边,这就叫window frame窗口框架,这是操作系统自带的。 这个对geometry的一些属性有一定影响,主要体现在Qt坐标系体系: 窗口当中包含一个按钮,这个按钮的坐标系是以父元素为参考,那么这个参考是widget本体作为参考,还是window frame作为参考,这两种参考体系都存在