QtQuick学习笔记(二)QML基本语法

来源:互联网 发布:剑网三妖成男捏脸数据 编辑:程序博客网 时间:2024/05/21 22:46

QML是基于javascript的一种语言,在我看来,主要目的是让界面的开发更加的灵活和快捷。

作为动态语言,确实在这方面有优势。

一,创建对象

创建对象就是定义一个JSON。

比如:

Rectangle{    id:rectangle    width:100    height:100    color:"red"}

这就是创建了一个长100像素,宽100像素, 颜色是红色的矩形,id是rectangle。

很简单吧。

其中

Rectangle就是类型名,id,width,height,color就是属性,如果是c++的话,就相当于:

Rectangle rectangle=new Rectangle();rectangle.widht=100;rectangle.height=100;rectangle.color=QColor("red");

相比之下缺失简便不少。

细心的观众可能发现了,id就是用来识别每个对象的唯一标识,就可以等同于c++里的变量名。

所以,在qml中,可以直接使用id

比如:

rectangle.width=200
这就是把上面那个矩形的宽设为了200像素。


二,连接信号

连接信号可以说就是定义一个事件处理函数。

当然,在这应该叫方法更合适。

Rectangle{    id:rectangle    width:100    height:100    color:"red"    onCompleted:{        console.log("rect");    }}

这就是在rectangle的completed信号上加了一个叫onCompleted方法,然后方法里往控制台输出了一句话。

这个是不用写出来信号的名字的,因为qml会on后面的部分解析成信号的名字,并将他们连起来。

如果信号是有参数的,那么在处理函数里可以直接使用这个形参,名字和定义时 的一样,如:

Rectangle{    id:rectangle    width:100    height:100    color:"red"    onCompleted:{        console.log(arg1)//arg1是信号complete的参数    }}
如果是c++代码的话,应该是这样:

Rectangle rectangle=new Rectangle();rectangle.widht=100;rectangle.height=100;rectangle.color=QColor("red");connect(rectangle,completed,this,onCompleted);...void onCompleted(QObject arg1){    console.log("rect");}

三,对象嵌套

对象里是可以放对象的,这是非常方便的一点。

Rectangle{    id:rectangle    width:100    height:100    color:"red"        Rectangle{        id:inner        width:50        height:50        color:"blue"    }}

这就是在红色的Rectangle里面又放了一个蓝色的小Rectangle。

四,引用

在本篇的最后,介绍一下qml怎么引用其他的库。

用的也是import声明

import QtQuick 2.0

上面就是引入了QtQuick的2.0版本的库。


注意:上面的代码都是运行不了的,只是为了解释语法。

0 0
原创粉丝点击