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

今天讲一下:QML语法

一 概述

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

二 QML语法基础

QMl的代码一般长如下:

import QtQuick 2.2Rectangle {width: 360height: 360MouseArea {anchors.fill: parentonClicked: {Qt.quit();}}Text {anchors.centerIn: parenttext: "Hello World"}
}

1 导入语句 import

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

2 对象和属性

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

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

Rectangle {width: 360height: 36
}

3 布局

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

4 注释

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

5 表达式

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

Item {width: 100*3height: 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 QuickQuick.Rectangle {width: 360height: 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编程入门》一书,并非原创,但写了这么多也很耗时,纯手打。

转载于:https://www.cnblogs.com/ChinacloudTech/p/8075416.html

Qt界面UI之QML初见(学习笔记四)相关推荐

  1. 【UI界面设计】PS基础学习笔记

    [UI界面设计]PS基础学习笔记 一.概述 1.行业规范: 2.介绍 二.PS入门 1.安装 2.基本介绍 3.新建项目 4.PS的基本使用流程 5.项目保存 6.抠图 7.修图 8.修人像图 9.如 ...

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

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

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

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

  4. RabbitMQ学习笔记四:RabbitMQ命令(附疑难问题解决)

    RabbitMQ学习笔记四:RabbitMQ命令(附疑难问题解决) 参考文章: (1)RabbitMQ学习笔记四:RabbitMQ命令(附疑难问题解决) (2)https://www.cnblogs. ...

  5. JSP学习笔记(四十九):抛弃POI,使用iText生成Word文档

    POI操作excel的确很优秀,操作word的功能却不敢令人恭维.我们可以利用iText生成rtf文档,扩展名使用doc即可. 使用iText生成rtf,除了iText的包外,还需要额外的一个支持rt ...

  6. Ethernet/IP 学习笔记四

    Ethernet/IP 学习笔记四 EtherNet/IP Quick Start for Vendors Handbook (PUB213R0): https://www.odva.org/Port ...

  7. OpenCV学习笔记四-image的一些整体操作

    title: OpenCV学习笔记四-image的一些整体操作 categories: 编程 date: 2019-08-08 12:50:47 tags: OpenCV image的一些操作 sP4 ...

  8. 吴恩达《机器学习》学习笔记四——单变量线性回归(梯度下降法)代码

    吴恩达<机器学习>学习笔记四--单变量线性回归(梯度下降法)代码 一.问题介绍 二.解决过程及代码讲解 三.函数解释 1. pandas.read_csv()函数 2. DataFrame ...

  9. esp8266舵机驱动_arduino开发ESP8266学习笔记四—–舵机

    arduino开发ESP8266学习笔记四-–舵机 使用时发现会有ESP8266掉电的情况,应该是板上的稳压芯片的限流导致的,观测波形,发现当舵机运转时,电源线3.3V不再是稳定的3.3V,大概是在3 ...

最新文章

  1. 杭电1175简单搜索 连连看
  2. 编程方法学笔记:karel
  3. 对于新手来说,Python 中有哪些难以理解的概念?我似乎明白了
  4. 万亩良田,随着稻香河流IoT奔跑
  5. 在jekyll模板博客中添加网易云模块
  6. vim block vim_我如何学会爱Vim
  7. 求解斐波那契数列复杂度分析
  8. 适用于 Windows PowerShell 的 SMS Cmdlet
  9. java语言没有保留结构和联合,java选择题判断题题库.doc
  10. Java基础(四)线程快速了解
  11. 2018年最新税收分类编码_这是我们在2018年推出的所有免费编码课程
  12. Android字符小写转大写,大写转小写
  13. mysql单数据库多硬盘配置_MySQL 使用mysqld_multi部署单机多实例详细过程
  14. Windows CMD DOS命令
  15. 奖励稀疏_好奇心解决稀疏奖励任务
  16. 实验6:安装EVE-NG
  17. 支持向量机SVM(二)
  18. 高中数学如何学好,必修一函数的单调性与最值(习题)
  19. 嵌入式Linux 的Cramfs 根文件系统配置成可读可写
  20. 这18条背下来没人敢和你忽悠CPU

热门文章

  1. 【Java从0到架构师】Nginx 拓展 - HTTPS支持、缓存、Http请求防盗链、限流、高可用(Keepalived)
  2. SpringBoot整合Redis 之 StringRedisTemplate、RedisTemplate 基础
  3. python环境配置(二)——centos6+ 安装python3.6以及pip3
  4. [转]形态学操作:膨胀与腐蚀
  5. 计算机前置usb应用,电脑前置usb和后置usb的区别
  6. 报表软件公司高价悬赏BUG,100块1个我真是醉了
  7. 编译c语言源程序得到的目标文件可以直接在dos环境中运行,c语言练习题一.doc
  8. python和环境变量_python 读取和设置环境变量
  9. B+树 范围查询_为什么 MySQL 使用 B+ 树,而不是 B 树或者 Hash?
  10. vue的computed单向绑定(如淘宝的购物车中使用)