QML与JavaScript交互综述总结
- 一、概述
- 二、JavaScript表达式
- 三、JavaScript资源
- 四、导入 JavaScript
- 五、JavaScript主机环境
一、概述
QML语言使用类似json的语法,并允许将各种表达式和方法定义为JavaScript函数。它还支持用户导入外部JavaScript文件,并使用这些导入提供的功能。总的来说,JavaScript和前端里面的角色基本一致,就是响应一些界面逻辑,真正的后台逻辑还得是C++来干。
二、JavaScript表达式
QML与JavaScript进行了深度集成,并允许用JavaScript定义信号处理程序和方法。
QML的另一个核心特性是能够使用属性绑定指定和加强对象属性之间的关系,属性绑定也是使用JavaScript定义的。
就像这种,back 这个对象的 宽高和 root 的宽高是绑定在一起的,后台使用的JavaScript来实现绑定的。
javascript">Window {
id: root
visible: true
width: 319
height: 570
title: qsTr("Hello World")
Image {
width: root.width
height: root.height
id: back
source: "./images/plant.jpg"
fillMode: Image.PreserveAspectCrop
}
}
三、JavaScript资源
在JavaScript函数中定义的应用程序逻辑可以被分离到单独的JavaScript文件中,称为JavaScript资源。这样把常用的JS功能给分离出来,以便于后面复用在一起,在QML体系里面一共有几种不同类型的JavaScript资源,具有不同的语义。后面会慢慢介绍清楚的。
四、导入 JavaScript
QML文档可以导入JavaScript资源,而JavaScript资源可以导入其他JavaScript资源以及QML模块。这允许应用程序开发人员以模块化的、自包含的文件提供应用程序逻辑。这就是模块化,相互引用和相互依赖的功能。
五、JavaScript主机环境
QML引擎提供的JavaScript环境与web浏览器提供的JavaScript环境有一些不同。 毕竟 JS 代码也是运行在某个引擎环境里面的,QML里面的限制就是QML引擎。web里面的就是 V8 Js引擎,QML引擎在根上下文中提供了各种对象,JavaScript开发人员可能不熟悉这些对象。这些限制和扩展在QML引擎提供的JavaScript主机环境的描述中有文档记录。