Qt Quick控制2.0用于嵌入式设备

时间:2017-06-08 09:15:39

标签: c++ qt optimization qtquick2 qtquickcontrols2

我的长期目标是为嵌入式设备进行HCI开发,而嵌入式设备实际上意味着它,而不是手机设备。

我已经在Qt Widgets上工作了一个月,因为某些原因避免使用Qt Quick(我担心QML代码没有优化),但昨天我看过这个视频:{{3} } 发言人最后说:"如果您现在正在制作嵌入式产品,请使用Qt Quick,尤其是现在的5.8。没有理由不使用Qt Quick"

但恰恰相反,他解释说,对于嵌入式设备,我们应该使用c ++代码,而不是JavaScript。

我没有真正理解它,这是否意味着我必须用c ++代码创建所有对象并使用Qt Quick制作我的架构?

我不能真正得到Qt希望我们做的事情。它只是沟通,因为他们不想优化旧的和稳定的Qt小部件,或者Qt Quick真的是嵌入式设备的解决方案吗?

我个人认为Qt不是嵌入式设备的解决方案,因为它们不断发展,改变策略,似乎不知道它们的发展方向。

我为这个非算法问题道歉,并感谢您的所有答案。

2 个答案:

答案 0 :(得分:1)

我无法与开发者的意图交谈,我也不能代表其他开发人员。作为一名设计嵌入式设备40年的开发人员,我只能说出我所理解的内容(很抱歉是数字滴管)。

C ++或JavaScript?我不觉得这个问题与你是否使用QtQuick有太多关系。当然,您可以在QML代码中嵌入一些JaveScript(有限制),但您也可以在相同的代码库中使用C ++(只是没有嵌入QML中)。那就是Python。 Qt和QtQuick都是编程框架,并且在某种程度上与语言无关。

我的观点是QtQuick是一种创建用户界面代码的好方法。在我目前的项目(多轴工业伺服控制系统)中,我使用QML作为用户界面(需要一点JavaScript),C ++用于大部分高级处理(如网络控制和数据流)较低级别的C语言和汇编语言(在uC&DSP和DSP中执行的例程)。在我看来,QML和C ++很好地结合在一起。

答案 1 :(得分:1)

我相信演讲者已经认识到,大多数(如果不是全部)业务逻辑应该使用C ++模型后端来完成。可以使用嵌入式JavaScript在QML中完成所有逻辑,因为JS是一种解释型语言,它在运行时的性能可能低于已编译的C ++代码(取决于编写C ++的程度)。

基本上你只想使用JS来操作图形组件,同时使用带有QObject模型的C ++来更新QtQuick元素'个人财产。

这在Qt Quick Best Practices wiki中提到过, https://wiki.qt.io/Qt_Quick_Best_Practices