5月31号Qt正式发布了新版本5.9,声明修复了大量的bug(2000多个?),增加了大量的新特性,并且更稳定。这是2015年5.6版本之后的一个LTS(长期维护)版本。 意味着在3年标准支持期内将分阶段不断提供对此版本的修复与维护,即使也会有其他新版本发布。
个人认为新的长期项目的开发是值得尝试从5.9开始的,但近些年的几个5.x版本中还仍有大量p2甚至少量p1级别的bug没有修复,仍有不少早期版本稳定开发的开发者迟迟无法迁移到新版本。所以享用新特性和接受潜在的未知风险还需要根据项目的要求以及侧重点进行权衡。
官方发布的新版本亮点的确不胜枚举。
比如Qt 3D,增强对 3D图像及动画的支持,更容易与Qt Quick相结合。 并支持多种3D几何格式的插件。
比如QML性能的提升,Qt Quick Controls 2的功能增强,还有基于openGL shader cache 对QML进行类型缓存, 以及.qml / .js文件生成的代码和数据结构的缓存的支持。 这些功能将大大提高使用Qt构建的设备的启动速度。
发布新Qt Creator 4.3.0,Quick Designer里面也看以同时看到和编辑qml code了! 作为Qml项目开发者确实立刻感到了方便!
还有新框架将允许Qt团队更容易创建新版本,包括修补程序和发布次要版本。 引入自动化性能回归测试,使得对Qt的监控与提高加强。
安全方面,Qt 5.9正式支持INTEGRITY RTOS。 确实越来越多的RTOS应用程亟需要更高级GUI框架来满足用户期望呢。
操作系统和硬件方面,Qt 5.9完全同时支持传统的Win32应用程序和通用App,支持Win 10的所有配置(Windows 10,Windows 10 IoT Core,Windows Mobile)。 另外还提供了对QNX 7和iMX.7的支持。(本段是官方声明的逐字翻译。作为跨平台神器,每个版本支持的系统与平台均不一样,有兴趣的请去看官方日志。我目前只使用linux Qt,关于windows平台版本的问题不要再问我啦。)
还有完全支持C ++ 11, 支持Wayland多进程, 提升了Qt Lite, 提升了Qt串行总线模块用于设备总线通信(CAN&ModBus)的通信功能,全面支持Gamepad,增加了新模块Qt remote object,还有Web,Network,定位等内容的一些更新。
总结就是眼花缭乱的新特性确实很有亮点,但并不是每个项目都有需要,旧版本仍存不少令一些开发者们很不满意待解决的问题,但对Qt来说优先级不高并且修复可能会导致牵一发而动全身。所以说寻求新特性与安全稳定的平衡,还需Qt团队和每一位开发者共同努力。
【本文转载自知乎,作者为Summer Fang】