1、QML基本语法
1.1 QML代码例子
import QtQuick 2.4
import QtTest 1.1
Rectangle {
id: foo
width: 640; height: 480
color: "cyan"
TestCase {
name: "ItemTests"
id: test1
function test_color() {
compare(foo.color, "#00ffff")
}
}
}
1.2 qml 语法讲解
包括导入语句、对象和属性、布局、注释、表达式
1.2.1 导入语句
import 语句告诉引擎使用了哪些模块、javascript资源和组件目录。
import QtQuick 2.4 as MyModule
- 导入模块
- 导入目录
- 导入目录清单 qmldir的文件
qmldir 文件
module QtQuick
plugin qtquick2plugin
classname QtQuick2Plugin
typeinfo plugins.qmltypes
designersupported
2、类型系统
数据类型时qml文档的基础。QML支持c++ 常见类型。
2.1 基本类型
表2-1 基本类型
类型 | 描述 |
---|---|
int | |
bool | |
real | |
double | |
string | |
url | 资源定位 |
list | 列表 |
var | 通用属性 |
enumeration | 枚举 |
表2-2 QtQuick基本类型
类型 | 描述 |
---|---|
color | argb颜色 |
font | QFont |
matrix4x4 | 4x4的矩阵 |
quaternion | 四元数 |
vector2d | 二维向量 |
vector3d | |
vector4d | |
date | 日期 |
point | |
size | |
rect |
2.2 属性改变行为
基本类型的属性没有属性改变信号,比如font 包括pixeSize,family,b 属性,但是它们没有信号,只有基类型font自身有信号。
2.3 Javascript类型
任何标准javascript类型都可以在QML中使用var 类型创建和存储。
import QtQuick 2.2
Item{
property var theArray:new Array()//这里面使用了javascript的Array属性。
}
2.4 对象类型
对象类型继承QtObject.后面会详细讲解使用方法。
3、对象特性
包括以下特性:id,property,signal,signal handler,method,附加属性和附加信号处理
3.1 id特性
id特性不是属性,而是一种特殊数据类型,不是字符串。
3.2 属性特性
属性时对象的一个特性,可以分配一个静态值,也可以绑定一个动态表达式。