• 7591阅读
  • 20回复

[讨论]Qt 5 攻略 [复制链接]

上一主题 下一主题
离线20091001753
 

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

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

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

若你需要用到 QtWebkit,则只能用 Qt 5.5及其以前的版本。
若你需要 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 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
QImage现支持超过2G的数据。
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
(づ ̄ 3 ̄)づ
离线lixinwei

只看该作者 1楼 发表于: 2020-12-09
Qt 5.13,开始支持的是Windows自带的Schannel(Secure Channel),不是OpenSSL;并且需要在编译Qt源码的时候加上-schannel选项,官方提供的Qt安装包仍然是基于OpenSSL,而不是Schannel
离线liulin188

只看该作者 2楼 发表于: 2020-12-09
计划明年这个时候直接从5.12更新到6
1条评分金钱+10
20091001753 金钱 +10 真巧,Qt 5.12 LTS  维护至 2021年12月6日。也许是你早就掐准了日子。 2020-12-09
https://wiki.qt.io/Qt_5.12_Release
https://wiki.qt.io/New_Features_in_Qt_5.12
https://wiki.qt.io/Qt_5.12.0_Known_Issues
https://www.qt.io/blog/qt-5.13.2-released
https://www.qt.io/blog/qt-creator-4.10.2-released
https://wiki.qt.io/Qt_5.12_Tools_and_Versions
离线liudianwu

只看该作者 3楼 发表于: 2020-12-10
等稳定2年再用
欢迎关注微信公众号:Qt实战 (各种开源作品、经验整理、项目实战技巧,专注Qt/C++软件开发,视频监控、物联网、工业控制、嵌入式软件、国产化系统应用软件开发)QQ:517216493  WX:feiyangqingyun  QQ群:751439350
离线XChinux

只看该作者 4楼 发表于: 2020-12-10
上个月已经升级到5.15了,看来能一直用到6.2发布。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线lukai_q_t

只看该作者 5楼 发表于: 2020-12-11
准备用Qt 5.15了
离线20091001753

只看该作者 6楼 发表于: 2020-12-11
我认为 Qt 6 抛弃 Win7 是很不明智的。
Win7 也是生命力强的系统,少说也要支持到 2030 年才对。
(づ ̄ 3 ̄)づ
离线crazy

只看该作者 7楼 发表于: 2020-12-11
回 20091001753 的帖子
20091001753:我认为 Qt 6 抛弃 Win7 是很不明智的。
Win7 也是生命力强的系统,少说也要支持到 2030 年才对。 (2020-12-11 13:38) 

确实是,不知道官方是从什么角度考虑的
还在用 Qt 5.7 版本,客户电脑还有一部分是 XP系统,难受的很……
C/C++/Qt爱好者
邮箱: kevinlq0912@163.com
公众号: devstone
博客:http://kevinlq.com/
离线stlcours

只看该作者 8楼 发表于: 2020-12-17
回 20091001753 的帖子
20091001753:我认为 Qt 6 抛弃 Win7 是很不明智的。
Win7 也是生命力强的系统,少说也要支持到 2030 年才对。 (2020-12-11 13:38) 

但是不抛弃的话,就没法使用Win10的许多新特性啊。这样的话,Qt6还叫面向未来的版本吗?未来10年,Win10的变化能大到什么程度,你能想象吗?IT世界的10年,意味着一个世纪啊。总不可能为了兼容WIN7,对WIN10新增API碰都不碰吧,那叫什么事情!另外,我最喜欢的Delphi语言的最新版,也已经抛弃了Win7,更夸张!看来这是业界共识啊!

另外,官方说不支持WIN7,也不是说完全不支持,事实上新建一个空项目,在WIN7上编译运行仍然是没有问题的。官方的意思只是说,我不帮你们测试了,能在WIN7上运行算你运气,不运行那是理所当然的。而且它在实现新功能的时候,使用新的WINAPI已经没有心理障碍了,哪怕使用旧API也能实现同样的功能!

这个话题其实是产品经理的活,与编程水平无关!当年铁道部长刘志军一心要上轮轨,而且还看不上国产的技术,最后居然做到了对国外技术进行消化吸收,才有了中国高铁事业的大发展!这见识显然是远远超过了十几位联名上书要上悬浮窗的院士。但是不好意思,刘志军初中毕业,养路工人出身!
离线liudianwu

只看该作者 9楼 发表于: 2020-12-18
只是对win7支持不全面,并没有抛弃,我亲测6.0完全ok的,各位不要误解,官方说的是对win7支持不全面,极少部分功能不支持win7,这个极少数你懂的,绝大部分人遇不到!
欢迎关注微信公众号:Qt实战 (各种开源作品、经验整理、项目实战技巧,专注Qt/C++软件开发,视频监控、物联网、工业控制、嵌入式软件、国产化系统应用软件开发)QQ:517216493  WX:feiyangqingyun  QQ群:751439350
离线adon1008

只看该作者 10楼 发表于: 2020-12-18
linux  或者国产化cpu系统应该使用哪个呢,现在很多客户都要求使用国产化系统了,能安装的版本还是5.6.1,新版本自己编译的老是过不了
离线lzh280

只看该作者 11楼 发表于: 2020-12-18
还在使用 Qt5.7
离线llwj0303

只看该作者 12楼 发表于: 2020-12-18
QColorSpace setters can now operate on invalid color spaces, making it possible to set primaries and transfer function independently.
有大佬解释下这个5.15新特性的意思么?能否解决之前无法真正RGB转CMYK的颜色转换问题?
专注C++,专注Qt
离线lixinwei

只看该作者 13楼 发表于: 2020-12-19
回 llwj0303 的帖子
llwj0303:QColorSpace setters can now operate on invalid color spaces, making it possible to set primaries and transfer function independently.
有大佬解释下这个5.15新特性的意思么?能否解决之前无法真正RGB转CMYK的颜色转换问题? (2020-12-18 17:01) 

https://codereview.qt-project.org/c/qt/qtbase/+/284767

当 QColorSpace无效(isvalid() 值为false)的时候,QColorspace的setTransferFunction() 、setPrimaries()仍然可以使用。
1条评分威望+1
llwj0303 威望 +1 优秀文章,支持!n神马都是浮云 2020-12-30
离线fanxinglanyu

只看该作者 14楼 发表于: 2020-12-29
学习了,也在qt5.15.2和6.0版本中犹豫
离线yanfei151

只看该作者 15楼 发表于: 2021-01-15
还在用5.5
公司需要国产化移植...
离线regwebtemp

只看该作者 16楼 发表于: 2021-03-05
我还在用qt4.8
离线llwj0303

只看该作者 17楼 发表于: 2021-03-12
更新到Qt5.15.2 + msvc2019,用32bit编译的程序在win7 32位系统上死活打不开,报错MSVCP140_1.dll丢失......????找到该文件放打包目录又会报api-ms-win-core-lib....丢失,有没遇到过的大佬指点下,为啥啊???
专注C++,专注Qt
离线llwj0303

只看该作者 18楼 发表于: 2021-03-12
回 llwj0303 的帖子
llwj0303:更新到Qt5.15.2 + msvc2019,用32bit编译的程序在win7 32位系统上死活打不开,报错MSVCP140_1.dll丢失......????找到该文件放打包目录又会报api-ms-win-core-lib....丢失,有没遇到过的大佬指点下,为啥啊??? (2021-03-12 17:19) 

忘了说了,我自己的系统是win10
专注C++,专注Qt
在线fsu0413

只看该作者 19楼 发表于: 2021-03-12
回 llwj0303 的帖子
llwj0303:忘了说了,我自己的系统是win10 (2021-03-12 17:20) 

安装VS2015 32位运行库(你没看错,是VS2015运行库,因为VS2015/2017/2019的运行库做到了二进制兼容
离线nanjingqin

只看该作者 20楼 发表于: 2021-08-23
5.15.5哪里有安装包?
1条评分金钱+10
20091001753 金钱 +10 https://build-qt.fsu0413.me 2022-09-08
快速回复
限100 字节
 
上一个 下一个