用于嵌入式设备的 Qt Quick 控件 2.0
Qt Quick controls 2.0 for embedded device
我的长期目标是为嵌入式设备进行 HCI 开发,我所说的嵌入式是真的,而不是 phone 设备。
我已经在 Qt Widgets 上工作了一个月,出于某些原因避免使用 Qt Quick(我担心 QML 代码没有优化),但昨天我看了这个视频 :Youtube
演讲者最后说:"If you're making an embedded product these days, use Qt Quick, especially now in 5.8. There's no excuse not to use Qt Quick"
但恰恰相反,他解释说,对于嵌入式设备,我们应该使用 C++ 代码,而不是 JavaScript。
我不太明白,这是否意味着我必须用 C++ 代码创建我的所有对象并使用 Qt Quick 制作我的架构?
我真的不明白 Qt 要我们做什么。这只是沟通,因为他们不想优化旧的和稳定的 Qt 小部件,还是 Qt Quick 真的是嵌入式设备的解决方案?
我个人认为 Qt 不是嵌入式设备的解决方案,因为它们在不断发展,不断改变策略,而且似乎不知道它们将走向何方。
对于这个非算法问题,我深表歉意,感谢您的所有回答。
我不能代表开发者的意图,也不能代表其他开发者。作为一个从事嵌入式设备设计已有 40 年的开发人员,我只能说说我的理解(抱歉,我是个数字滴管)。
C++ 还是 JavaScript?我觉得这个问题与您是否使用 QtQuick 没有太大关系。当然,您可以在 QML 代码中嵌入一些 JaveScript(有限制),但您也可以在同一代码库中使用 C++(只是不嵌入到 QML 中)。然后是Python。 Qt 和 QtQuick 都是编程框架,并且在某种程度上与语言无关。
我的观点是,QtQuick 是一种创建用户界面代码的良好、可移植的方法。在我当前的项目(一个多轴工业伺服控制系统)中,我使用 QML 作为用户界面(在需要的地方有一点 JavaScript),C++ 用于大部分高级处理(如网络控制和数据流)、C 和较低级别的汇编语言(那些在 uC 和 DSP 中执行的例程)。在我看来,QML 和 C++ 接口很好。
我相信演讲者的意思是,即使不是所有业务逻辑,也应该使用 C++ 模型后端来完成大部分业务逻辑。可以在带有嵌入式 JavaScript 的 QML 中完成所有逻辑,但是,因为 JS 是一种解释型语言,它在 运行 时的性能可能低于编译的 C++ 代码(取决于C++ 编写)。
本质上,您只想使用 JS 来操作图形组件,而使用 C++ 和 QObject 模型来更新 QtQuick 元素的各个属性。
Qt Quick Best Practices wiki 中提到了这一点,
https://wiki.qt.io/Qt_Quick_Best_Practices
我的长期目标是为嵌入式设备进行 HCI 开发,我所说的嵌入式是真的,而不是 phone 设备。
我已经在 Qt Widgets 上工作了一个月,出于某些原因避免使用 Qt Quick(我担心 QML 代码没有优化),但昨天我看了这个视频 :Youtube
演讲者最后说:"If you're making an embedded product these days, use Qt Quick, especially now in 5.8. There's no excuse not to use Qt Quick"
但恰恰相反,他解释说,对于嵌入式设备,我们应该使用 C++ 代码,而不是 JavaScript。
我不太明白,这是否意味着我必须用 C++ 代码创建我的所有对象并使用 Qt Quick 制作我的架构?
我真的不明白 Qt 要我们做什么。这只是沟通,因为他们不想优化旧的和稳定的 Qt 小部件,还是 Qt Quick 真的是嵌入式设备的解决方案?
我个人认为 Qt 不是嵌入式设备的解决方案,因为它们在不断发展,不断改变策略,而且似乎不知道它们将走向何方。
对于这个非算法问题,我深表歉意,感谢您的所有回答。
我不能代表开发者的意图,也不能代表其他开发者。作为一个从事嵌入式设备设计已有 40 年的开发人员,我只能说说我的理解(抱歉,我是个数字滴管)。
C++ 还是 JavaScript?我觉得这个问题与您是否使用 QtQuick 没有太大关系。当然,您可以在 QML 代码中嵌入一些 JaveScript(有限制),但您也可以在同一代码库中使用 C++(只是不嵌入到 QML 中)。然后是Python。 Qt 和 QtQuick 都是编程框架,并且在某种程度上与语言无关。
我的观点是,QtQuick 是一种创建用户界面代码的良好、可移植的方法。在我当前的项目(一个多轴工业伺服控制系统)中,我使用 QML 作为用户界面(在需要的地方有一点 JavaScript),C++ 用于大部分高级处理(如网络控制和数据流)、C 和较低级别的汇编语言(那些在 uC 和 DSP 中执行的例程)。在我看来,QML 和 C++ 接口很好。
我相信演讲者的意思是,即使不是所有业务逻辑,也应该使用 C++ 模型后端来完成大部分业务逻辑。可以在带有嵌入式 JavaScript 的 QML 中完成所有逻辑,但是,因为 JS 是一种解释型语言,它在 运行 时的性能可能低于编译的 C++ 代码(取决于C++ 编写)。
本质上,您只想使用 JS 来操作图形组件,而使用 C++ 和 QObject 模型来更新 QtQuick 元素的各个属性。
Qt Quick Best Practices wiki 中提到了这一点, https://wiki.qt.io/Qt_Quick_Best_Practices