使用QML进行应用程序开发既简单又强大。但是Qt C ++可以具有更高的性能,提供许多功能并且不易出错。那么,了解具体使用时机将非常重要。
与使用C ++开发相比,QML 中的编码具有多个优点:
-
使用QML + JavaScript进行编码非常容易学习,并且可以大大减少所需的代码量。
-
语言概念(例如状态,信号或属性绑定)可节省大量时间。
-
QML使添加动画变得简单。您可以使用简单的Animation组件为QML类型的每个属性设置动画。
-
QML是可扩展的和灵活的。例如,您可以内联扩展具有新属性和功能的对象。无需为小型扩展创建新的可重用类型。
-
QML渲染引擎提供了出色的性能。渲染器使用C ++ Qt并依赖于硬件加速的场景图。这使其速度足够快,甚至可以支持高性能游戏。
使用C ++进行Qt应用程序开发也具有优势。在某些情况下,您需要仅Qt C ++可用的功能。同样,C ++快速且类型安全。这样可以为长时间运行和数据密集型计算提供最佳性能。
对于以下示例,您将选择C ++而不是QML:
-
本地C ++代码是数据密集型操作的正确选择。它将胜过解释后的QML / JavaScript代码。
-
C ++代码是类型安全的,并已编译为目标代码。对于稳定性和安全性很重要的部分,使用C ++可以使您的应用程序不易出错。
-
与QML类型相比,Qt C ++组件提供了不同的功能,在某些情况下还提供了更多的功能。例如,高级联网功能。
-
也可以将C ++与Android(通过JNI)或iOS(Obj-C或Swift)的本机代码混合使用。这也允许为QML提供此类本机功能。
-
您可能需要仅在C ++中可用的第3方库,或者在C ++中具有要重用的现有代码。
无需触摸C ++就可以对应用程序的大部分进行编码。Felgo SDK和Qt有许多可用的QML组件。有关集成Qt C ++或使本机功能可用于QML的起点,请参阅指南如何将带有信号和插槽的Qt C ++类公开到QML。