集成QML和JavaScript¶
描述如何在QML应用程序中使用JavaScript
QML语言使用类似JSON的语法,并允许将各种表达式和方法定义为JavaScript函数。它还允许用户导入JavaScript文件并使用这些导入提供的功能。
这使得开发人员和设计人员能够利用他们对JavaScript的知识来快速开发用户界面和应用程序逻辑。
JavaScript 表达式¶
QML 深度集成了 JavaScript,并允许在 JavaScript 中定义 信号处理器 和 方法。QML 的另一个核心特性是能够使用 属性绑定 来指定和执行对象属性之间的关系,这些绑定也是使用 JavaScript 定义的。
请参阅标题为JavaScript Expressions in QML Documents的文档页面,以获取有关在QML中使用JavaScript表达式的更多信息。
从JavaScript动态创建QML对象¶
QML 支持从 JavaScript 中动态创建对象。这对于延迟对象的实例化直到必要时非常有用,从而改善应用程序的启动时间。它还允许根据用户输入或其他事件动态创建视觉对象并将其添加到场景中。此功能可以通过两种主要方式使用。
对象可以通过JavaScript以命令式的方式动态创建,使用动态创建对象。这在某些情况下非常有用,例如当QML被用作应用程序脚本语言时。
注意
在创建用户界面时,动态创建对象的首选方法是使用声明性构造,因为这些构造与QML引擎和工具集成得最好。存在各种类型以实现此功能,例如Loader、Instantiator、Repeater类型。
JavaScript 资源¶
在JavaScript函数中定义的应用程序逻辑可以分离到称为JavaScript资源的单独JavaScript文件中。有几种不同类型的JavaScript资源,具有不同的语义。
有关为QML定义JavaScript资源的更多信息,请参阅标题为Defining JavaScript Resources In QML的文档页面。
JavaScript 导入¶
QML 文档可以导入 JavaScript 资源,JavaScript 资源也可以导入其他 JavaScript 资源以及 QML 模块。这使得应用程序开发者能够在模块化、自包含的文件中提供应用程序逻辑。
请参阅标题为导入JavaScript资源的文档页面,以获取有关如何导入JavaScript资源以及如何使用它们提供的功能的更多信息。
JavaScript 宿主环境¶
QML引擎提供了一个与Web浏览器提供的JavaScript环境有所不同的JavaScript环境。在该环境中运行的代码受到某些限制,并且QML引擎在根上下文中提供了各种对象,这些对象可能对JavaScript开发人员来说并不熟悉。
这些限制和扩展在QML引擎提供的JavaScript主机环境描述中有详细记录。
还有关于JavaScript引擎使用的内存管理的深入描述。
配置JavaScript引擎¶
对于特定的使用场景,您可能希望覆盖JavaScript引擎用于处理内存和编译JavaScript的一些参数。有关这些参数的更多信息,请参见配置JavaScript引擎。