整合 QML 和 JavaScript#

描述如何在 QML 应用程序中使用 JavaScript

QML 语法使用类似于 JSON 的语法,并允许定义各种表达式和方法作为 JavaScript 函数。它还允许用户导入 JavaScript 文件,并使用这些导入提供的功能。

这使得开发人员和设计师可以利用他们的 JavaScript 知识,快速开发用户界面和应用逻辑。

JavaScript 表达式#

QML 深度集成 JavaScript,并允许在 JavaScript 中定义 信号处理程序方法。QML 的另一项核心功能是使用 属性绑定 指定和强制对象属性之间的关系,这些绑定也可以使用 JavaScript 定义。

有关在 QML 文档中使用 JavaScript 表达式的更多信息,请参阅名为 JavaScript 表达式在 QML 文档中 的文档页面。

从 JavaScript 动态创建 QML 对象#

QML 支持在 JavaScript 中动态创建对象。这有助于在必要时刻延迟对象的实例化,从而提高应用程序启动时间。它还允许视觉对象在响应用户输入或其它事件时动态创建并添加到场景中。此功能主要有两种用途。

可以在 JavaScript 中以命令方式动态从 对象动态创建 创建对象。例如,当 QML 用作应用程序脚本语言时,这可能很有用。

注意

在创建用户界面时,首选的方式是使用声明性结构来动态创建对象,因为这些与 QML 引擎和工具的集成最佳。存在各种类型来启用此功能,例如 Loader、Instantiator、Repeater 类型。

JavaScript 资源#

在 JavaScript 函数中定义的应用逻辑可以分离到单独的 JavaScript 文件中,这些文件称为 JavaScript 资源。存在几种不同的 JavaScript 资源,具有不同的语义。

有关为 QML 定义 JavaScript 资源的信息,请参阅名为 在 QML 中定义 JavaScript 资源 的文档页面。

JavaScript 导入#

QML 文档可以导入 JavaScript 资源,JavaScript 资源也可以导入其它 JavaScript 资源以及 QML 模块。这使得应用程序开发人员可以以模块化和封闭的方式将这些文件的逻辑提供作为应用程序逻辑。

请参阅名为导入JavaScript资源的文档页面,以了解如何导入JavaScript资源和如何使用它们提供的功能。

JavaScript宿主环境#

QML引擎提供了一个JavaScript环境,它与浏览器提供的JavaScript环境存在一些差异。在环境中运行的代码存在某些限制,QML引擎在根上下文中提供了某些对象,这些对象对JavaScript开发者可能不熟悉。

这些限制和扩展在QML引擎提供的JavaScript宿主环境描述中进行了说明。

JavaScript引擎使用的内存管理也有详细的描述。

配置JavaScript引擎#

对于特定的使用场景,您可能希望覆盖JavaScript引擎用于处理内存和编译JavaScript的部分参数。有关这些参数的更多信息,请参阅配置JavaScript引擎