拖了大半年,今天终于有更新了。。。我自己都不好意思,最近太忙了!

今天讲一下:QML语法

一 概述

QML是一种专门用于构建用户界面的编程语言,它允许用户构建高性能,具有流畅特效的可视化应用程序,QML是可读的,声明式的文档,具有类似JSON的语法,支持使用JavaScrip表达式,具有动态属性绑定等特性。

二 QML语法基础

QMl的代码一般长如下:

import QtQuick 2.2

Rectangle {
width: 360
height: 360 MouseArea {
anchors.fill: parent
onClicked: {
Qt.quit();
}
} Text {
anchors.centerIn: parent
text: "Hello World"
}
}

1 导入语句 import

  import语句导入了QtQuick模块,它包含了QML各种类型!

2 对象和属性

QML文档就是一个QML对象树,在这段代码中创建了两个对象,Rectangle和它的子对象Image,对象有它的类型指定,大写字母开头,后面跟一对大括号,里面有宽,高,颜色等属性。

属性通过“属性:值”来初始化,属性和它的值使用一个冒号隔开。属性可以分开写,也可写在一行,分开时分号不是不需的,写在一行必须有分号。

Rectangle {
width: 360
height: 36
}

3 布局

Image的anchors.centerIn起到了布局的作用,使Image处于对象的中心位置。还有其他布局方式。

4 注释

QML的注释和javascript相似。//单行注释,/**/多行注释。

5 表达式

“属性:值”中的值可以设置成表达式,例如:

Item {
width: 100*3
height: 50+22
}

  表达式中可包含其他对象或属性的引用,这样便创建了一个绑定,当表达式的值改变时,这个属性会自动更新为新的值。

6 调试输出

在QML代码中,可以用console.log()和conlole.debug()来输出调试信息。

接下来详细的讲解下import语句

三 import导入语句

默认情况下,QML文档可以访问到该.qml同目录下的对象类型,要想访问其他对象类型,就必须使用import导入该类型的命名空间。

1 模块导入

import<ModuleIdentifier><Version.Number> [as<Qualifier>] 例如:

import QtQuick 2.2 as Quick

Quick.Rectangle {
width: 360
height: 360
}

2 导入目录

QML文档支持直接导入包含有QML文档的目录:import “<DirectoryPath>” [as<Qualifier>]
<DirectoryPath>既可以是本地目录,也可以是远程目录
<Qualifier>和前面一样,是限定符。
例如:
import “../mycomponnets” 和 import "https://wiki.autodesk.com/mycomponnets"
注意:当导入网络上的目录时,只能访问该目录qmldir文件制定的QML文件和JavaScript文件。

3 目录清单qmldir文件

除了远程目录,本地目录也可以包含一个qmldir文件,这样可以只暴露qmldir中指定类型给导入该目录的客户端。如果目录中的JavaScript资源没有声明在一个qmldir文件中,那么它们不能暴露给客户端。
目录清单的语法如下:

4 JavaScript资源导入语句

import “<JavaScriptFile>” as "<Identifier>"

每个导入的JavaScript文件都要指定一个标识符,以便能够在QML文档中访问,这个标识符必须是唯一的。

此笔记主要参考《QT5编程入门》一书,并非原创,但写了这么多也很耗时,纯手打。

												

Qt界面UI之QML初见(学习笔记四)的更多相关文章

  1. C#可扩展编程之MEF学习笔记(四):见证奇迹的时刻

    前面三篇讲了MEF的基础和基本到导入导出方法,下面就是见证MEF真正魅力所在的时刻.如果没有看过前面的文章,请到我的博客首页查看. 前面我们都是在一个项目中写了一个类来测试的,但实际开发中,我们往往要 ...

  2. IOS学习笔记(四)之UITextField和UITextView控件学习

    IOS学习笔记(四)之UITextField和UITextView控件学习(博客地址:http://blog.csdn.net/developer_jiangqq) Author:hmjiangqq ...

  3. java之jvm学习笔记四(安全管理器)

    java之jvm学习笔记四(安全管理器) 前面已经简述了java的安全模型的两个组成部分(类装载器,class文件校验器),接下来学习的是java安全模型的另外一个重要组成部分安全管理器. 安全管理器 ...

  4. Learning ROS for Robotics Programming Second Edition学习笔记(四) indigo devices

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...

  5. Typescript 学习笔记四:回忆ES5 中的类

    中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...

  6. ES6学习笔记<四> default、rest、Multi-line Strings

    default 参数默认值 在实际开发 有时需要给一些参数默认值. 在ES6之前一般都这么处理参数默认值 function add(val_1,val_2){ val_1 = val_1 || 10; ...

  7. muduo网络库学习笔记(四) 通过eventfd实现的事件通知机制

    目录 muduo网络库学习笔记(四) 通过eventfd实现的事件通知机制 eventfd的使用 eventfd系统函数 使用示例 EventLoop对eventfd的封装 工作时序 runInLoo ...

  8. python3.4学习笔记(四) 3.x和2.x的区别,持续更新

    python3.4学习笔记(四) 3.x和2.x的区别 在2.x中:print html,3.x中必须改成:print(html) import urllib2ImportError: No modu ...

  9. Go语言学习笔记四: 运算符

    Go语言学习笔记四: 运算符 这章知识好无聊呀,本来想跨过去,但没准有初学者要学,还是写写吧. 运算符种类 与你预期的一样,Go的特点就是啥都有,爱用哪个用哪个,所以市面上的运算符基本都有. 算术运算 ...

随机推荐

  1. Hadoop生态圈-Kafka的旧API实现生产者-消费者

    Hadoop生态圈-Kafka的旧API实现生产者-消费者 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.旧API实现生产者-消费者 1>.开启kafka集群 [yinz ...

  2. sql数据库连接字符串在APP.config配置文件内的两种写法

    第一种方法 写法: <configuration> <appSettings> <add key="connectionstring" value=& ...

  3. pgadmin导出excel

    生成导入sql 第一行公式:="insert into province(code,name) values("&A2&",'"&B2& ...

  4. Manacher's Algorithm 马拉车算法

    作用:求一个字符串中的最长子串,同时还可以求所有子串的长度. 题目链接: https://vjudge.net/contest/254692#problem/B 代码: #include<bit ...

  5. Quartus II 安装教程—FPGA入门教程【钛白Logic】

    Quartus II 工具安装一般分为两个部分,首先是开发工具本身的安装,其次就是器件库的安装,我们可以根据我们的需要选择相应的器件库来安装,这里我们使用Cyclone IV的FPGA,即安装Cycl ...

  6. 【转载】Maven pom文件详解

    什么是pom?    pom作为项目对象模型.通过xml表示maven项目,使用pom.xml来实现.主要描述了项目:包括配置文件:开发者需要遵循的规则,缺陷管理系统,组织和licenses,项目的u ...

  7. React-Native 之 生命周期

    前言 学习本系列内容需要具备一定 HTML 开发基础,没有基础的朋友可以先转至 HTML快速入门(一) 学习 本人接触 React Native 时间并不是特别长,所以对其中的内容和性质了解可能会有所 ...

  8. OS X 10.11:在exFAT分区的外置硬盘上使用Time Machine。

    Time Machine默认需要使用HFS+分区的外置硬盘,但在网络硬盘上也可以使用单个的 .sparsebundle 镜像文件备份.在本地USB或Firewire等接口连接的外置硬盘,只有exFAT ...

  9. 数组slice方法

    slice slice(start,end):方法可从已有数组中返回选定的元素,返回一个新数组,包含从start到end(不包含该元素)的数组元素.(不会改变原数组) start参数:必须,规定从何处 ...

  10. [转] caffe数据层参数说明

    原文地址:http://www.cnblogs.com/denny402/p/5070928.html 稍有修改: 数据层是每个模型的最底层,是模型的入口,不仅提供数据的输入,也提供数据从Blobs转 ...