Qt Quick 为 Qt 引入了一门叫 QML(Qt Meta/Modeling Language)的脚本语言,它是 ECMAScript 标准的实现。所以 QML 语法是在 ECMAScript 语法的基础上实现的。
ECMAScript 语言的标准是由 Netscape、Sun、微软、Borland 等公司基于 JavaScript 和 JScript 锤炼、定义出来的。
ECMAScript 仅仅是一个描述,定义了脚本语言的所有属性、方法和对象。其他语言可以实现 ECMAScript 来作为功能的基础,正如 JavaScript 那样。这个实现又可以被扩展,包含特定于宿主环境的新特性,比如 QML 就引入了 Qt 对象系统中的信号与槽,还增加了动态属性绑定等非常有特色的新功能。
作为一种全新的编程语言,QML 有三个核心:
- ECMAScript
- Qt 对象系统
- Qt Quick 标准库
本文福利,莬费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QSS,OpenCV,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击莬费领取↓↓
一、语法
下面一个个来看 ECMAScript 的语法。(QML 是 ECMAScript 标准的实现,所以两者语法是基本一样的)
1. 区分大小写
与 C++ —样,变量、函数名、运算符以及其他一切东西都是区分大小写的,也就是说, 变量 area 和 Area 是不同的。
2. 弱类型
与 C++ 不同,ECMAScript 中的变量没有特定的类型,定义变量时只用 var 运算符,可以将它初始化为任意的值,你可以随时改变变量所存储的数据类型(实际上应当尽量避免这样做)。例如:
var i = 0
console.log(i)
i = "hello"
console.log(i)
尽管在语法上这么做没有问题,但好的编码习惯是一个变量始终存放相同类型的值。
3. 语句后的分号可有可无
C、C++、Java 等语言都要求每条语句以分号(;)结束。ECMAScript 则允许开发者自行决定是否以分号结束一行代码。如果没有分号,ECMAScript 就把这行代码的结尾看作该语句的结束(与 Lua、Python、Visual Basic 相似)。至于加不加分号,那就看自己的喜好了。下面两行代码的语法都是正确的:
var background = "white"
var i = 0
二、变量
在 ECMAScript 中使用 var 运算符声明变量,与 C++ 类似,变量名需要遵循一定的规则。
1. 变量声明
变量用 var 运算符加变量名来定义。例如:
var i = 0
在这个例子中,声明了变量 i 并把它初始化为 0。你也可以不初始化,在用到时再初始化。
一个 var 语句可以定义多个变量。例如:
var i = 0 , name = "j"
这个例子定义了变量 i,初始化为数字;还定义了变量 name,初始化为字符串。你看到了,这和 C&