整合 QML 和 JavaScript
QML 语言使用类似 JSON 的语法,允许将各种表达式和方法定义为 JavaScript 函数。它还允许用户导入 JavaScript 文件并使用这些导入文件提供的功能。
这样,开发人员和设计人员就能利用 JavaScript 知识快速开发用户界面和应用程序逻辑。
JavaScript 表达式
QML 与 JavaScript 深度集成,允许在 JavaScript 中定义信号处理程序和方法。QML 的另一个核心功能是使用属性绑定(也是使用 JavaScript 定义)来指定和执行对象属性之间的关系。
有关在 QML 中使用 JavaScript 表达式的更多信息,请参阅 QML文档中的 JavaScript 表达式文档页面。
从 JavaScript 动态创建 QML 对象
QML 支持从 JavaScript 中动态创建对象。这对延迟对象实例化到必要时非常有用,从而改善了应用程序的启动时间。它还允许动态创建可视对象,并根据用户输入或其他事件添加到场景中。该功能主要有两种使用方式。
使用对象的动态创建,可以从 JavaScript 以命令方式动态创建对象。例如,当 QML 用作应用脚本语言时,这就非常有用。
注: 在创建用户界面时,动态创建对象的首选方式是使用声明式结构,因为这些结构与 QML 引擎和工具集成得最好。有多种类型可实现这一功能,如Loader,Instantiator,Repeater 类型。
JavaScript 资源
在 JavaScript 函数中定义的应用程序逻辑可被分离到单独的 JavaScript 文件中,这些文件被称为 JavaScript 资源。JavaScript 资源有多种不同类型,语义也各不相同。
有关为QML 定义 JavaScript 资源的更多信息,请参阅文档页面 "Defining JavaScript Resources InQML"。
JavaScript 导入
QML 文档可导入 JavaScript 资源,而 JavaScript 资源可导入其他 JavaScript 资源和 QML 模块。这样,应用程序开发人员就能在模块化、自足的文件中提供应用程序逻辑。
有关如何导入JavaScript 资源以及如何使用其提供的功能的更多信息,请参阅文档页面 "导入 JavaScript 资源"。
JavaScript 主机环境
QML 引擎提供的 JavaScript 环境与 Web 浏览器提供的 JavaScript 环境有一些不同。某些限制适用于在环境中运行的代码,QML 引擎在根上下文中提供了 JavaScript 开发人员可能不熟悉的各种对象。
这些限制和扩展都记录在 QML 引擎提供的JavaScript 主环境描述中。
此外,还深入介绍了 JavaScript 引擎采用的内存管理。
配置 JavaScript 引擎
对于特定用例,你可能想覆盖 JavaScript 引擎用于处理内存和编译 JavaScript 的某些参数。有关这些参数的更多信息,请参阅配置 JavaScript 引擎。
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.