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
- QtQuick学习笔记(二)QML基本语法
- QtQuick基础教程(二)---QML基本语法
- QtQuick学习笔记之QML自定义信号
- QtQuick学习笔记之QML鼠标事件
- QtQuick学习笔记之QML定时器Timer
- QtQuick学习笔记之QML键盘Keys事件
- QtQuick学习笔记之QML文件定义组件Component
- QtQuick基础教程(五)---QML语法
- qtquick 学习之二
- Shell学习笔记二(基本语法)
- java学习笔记(二) -- 基本语法
- mongoDB学习笔记--shell基本语法(二)
- Freemarker学习笔记二—基本语法
- QtQuick学习笔记之QML布局定位器Row/Column/Grid/Flow
- qml基本语法
- QML 的基本语法
- QML基本语法
- QML笔记整理——QtQuick状态、过渡和动画
- 高性能集群软件Keepalived
- 赚的钱不花掉就不算自己的钱?
- 在 Ubuntu 14.04 Server 上安装 Ganglia
- 设计模式-适配器模式
- SMTP命令学习(发邮件)
- QtQuick学习笔记(二)QML基本语法
- 【编程之美】中国象棋将帅问题
- java定时器与定时任务
- c++设计模式-----代理模式proxy
- hdu5458 2015沈阳赛区网络赛 树链剖分+并查集
- TreeSet的两种排序方式
- Minimum Cut (hdu 5452 离线LCA)
- Android之drawlayout使用和总结
- Objective-C数组详解