QML自学之路(一)-QML语言介绍

QML语言语法十分简洁,可读性很高,用于快速开发Qt程序的UI部分。QML语言语法有些类似于Json语言,同时QML语言还包含了JavaScript语言,JavaScript语言用于描述一个对象的行为。

每一个QML文档包含两个部分:import部分及对象声明部分

一、import语句

import语句位于文档的最开始,它告诉QML引擎,当前文档使用哪些模块,javaScript资源以及组件目录。因此import分为以下三种类型:

1、模块import

模块import的通用语法如下所示:

    import <ModuleIdentifier> [<Version.Number>] [as <Qualifier>]

<ModuleIdentifier> 是模块的标识符。

<Version.Number>模块有可能定义了多个版本的对象类型及javascript资源,版本编号用于指定引入的具体是哪一个版本的类型及资源。版本编号是可选的,如果没有指定,引擎会默认加载最新版本类型及资源

<Qualifier>是局部命名空间标识符,这个标识符用于指定将引入的类型及资源放入哪一个命名空间内。如果未指定,则引入的类型及资源会默认放于全局命名空间中

一个常见的模块引入的例子如下所示:

import QtQuick 2.10 as Quick

2、目录import

目录import语句可以使QML文档使用指定目录中包含的QML文档定义的对象类型。它的通用语法如下所示:

import "<DirectoryPath>" [as <Qualifier>]

<DirectoryPath>是本地文件目录,可以是绝对路径或者相对路径。

<Qualifier>与模块imports类似,是可选的。

如果指定的本地目录中包含qmldir文件,则QML文档可以访问qmldir文件中包含的类型。否则引擎会根据指定目录中包含的.qml文件推断可访问的对象类型。(这里提到的qmldir和模块定义中的qmldir不同。可参见 directory imports

3、javaScript资源import

javaScript资源import,是QML文档可以访问javaScript资源中定义的javaScript函数对象。它的通用语法如下所示:

import "<JavaScriptFile>" as <Identifier>

二、对象声明

一个完整的对象声明,指定了对象的基础类型,为已有属性赋值,指定了对象的自定义属性,以及指定了对象包含的所有子对象。

一个复杂的对象声明往往包含多个子对象,每个子对象内部可能又包含其他子对象。因此,这些对象以及子对象形成了一个层级关系,这个层级关系也构成了一个对象树。一个对象声明的例子如下所示:

import QtQuick 2.0

Rectangle {
    width: 100
    height: 100

    gradient: Gradient {
        GradientStop { position: 0.0; color: "yellow" }
        GradientStop { position: 1.0; color: "green" }
    }
}

三、QML语言的批注

QML语言的批注语法与C++语言类似

单行批注以"//"开头

多行批注以"/*"开始,以“*/”结束

以下是一个包含批注的代码示例:

Text {
    text: "Hello world!"    //a basic greeting
    /*
        We want this text to stand out from the rest so
        we give it a large size and different font.
     */
    font.family: "Helvetica"
    font.pointSize: 24
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值