小结 | Meet Qt技术沙龙 深圳、西安站
感谢一百多位Qt专业开发者参加了我们两周前在深圳、西安举办的Meet Qt技术沙龙活动,按惯例,工程师从众多提问中挑选了八个典型问题做简要回答,希望能解答更多Qt开发者的疑问。
问1: Qt for MCUs不开放源码,怎样解决用户适配其他自用MCU问题?
答: Qt for MCUs不是开源软件。但是对于商业用户,能够提供平台适配相关的底层代码。
- Qt 公司提供专业咨询服务。提供为客户适配其他MCU或者定制开发的服务。
- Qt提供完善的手册,参见:https://doc.qt.io/QtForMCUs/platform-porting-guide-introduction.html
问2: Qt for MCUs的QML与C++后端的交互方式。从PC端转到MCU端,这部分的适配工作量有多大?
答: 可以把C++逻辑封装在一个接口类中(新的类继承自Qt提供的基类),新的C++类和QML代码放在同一个工程中,然后QML中就可以直接调用C++的对象方法、访问成员变量甚至是宏定义。
PC端的QML和MCU端的QML语法几乎相同。Qt for MCUs的QML大致是标准QML的一个子集。因此,GUI的迁移工作量不大。但是要也要考虑后端逻辑的迁移(Qt for MCUs不包含任何Qt C++中的基础类库)。请参考: 移植Qt应用到MCU上。
问3: 官方的Qt for Mcus的硬件适配计划是如何?主要会关注哪些芯片厂商的适配?
答:官方支持的硬件列如下。此外,也可以咨询Qt专业服务,我们提供其他板卡的移植服务。
问4:QML可以编译成C++代码,那是不是可以理解为QML和Widget两种技术路线要合二为一了?
答: 官方规划在Qt 6 中对QML语法进行升级。其中一项就是考虑添加Compact模式。标准的QML还是解释运行,而Compact模式的QML可以在编译时转换为C++,再进行构建。
但这不能说两种技术路线要合并。两者还是有许多基础设施的差异。
问5:Qt 5.15能用CMake么?QMake项目怎么转CMake?
答:可以使用,Qt后续发行版本身的构建就是采用CMake,但它不是唯一选项,QMake依然可以用,此外CMake的语法和QMake有所不同,可以根据自己的偏好和使用体验进行选择。
问6:由于保密或者其他的原因,当软件开发过程中需要Qt官方技术支持,这些代码可能不能提供给支持人员,这时Qt公司如何提供技术服务?
答:Qt专业服务团队提供灵活化的服务方案,我们优先提供远程线上技术服务,同时也提供线下现场支持,甚至包括驻场项目开发。如果您有技术服务需求欢迎与我们联系。
问7: Qt 5.15之后是否只能用商业版本?
答:Qt 5.15 之后仍然分为商业版和开源版,开源版将不在支持离线安装,只能通过Qt在线安装使用。另外开源版也将不在提供LTS版本。所以若需要进行商业化软件开发,建议使用商业版Qt,提供了长期有效的技术支持和版本迭代。你可以参考https://qt-china.blog.****.net/article/details/106713240
问8:快速启动的案例当中,Linux系统裁剪和Qt库的裁剪对最终优化的结果影响比重是怎么样的,或者说Qt库的裁剪对应用程序启动及运行有多大影响?
答:系统裁剪涉及到启动顺序,device tree的裁剪,内核优化等,而Qt 库裁剪会直接影响Qt整个库文件大小以及Qt启动时间,所以这两方面都很重要。可参考https://www.qt.io/blog/2016/04/20/fast-booting-qt-devices-part-1-automotive-instrument-cluster