QtQuick基础教程(二)---QML基本语法

QML语言特性

QML的语法效法CSS,是一种声明式语言(Declarative Code),属性定义及关系直接写在定义体中,编写效率极高。
QML源代码一般由QML引擎从单独的QML代码文件中读取。

Import语句

QML代码中,import语句一般写在头几行。可以是以下几种之一:
- 包含类型的全名空间
- 包含QML代码文件的目录
- Javascript代码文件
格式如下:

import Namespace VersionMajor.VersionMinor
import Namespace VersionMajor.VersionMinor as SingletonTypeIdentifier
import "directory"
import "file.js" as ScriptIdentifier

示例如下:

import QtQuick 2.0
import QtQuick.LocalStorage 2.0 as Database
import "../privateComponents"
import "somefile.js" as Script

更多细节请见QML Syntax - Import Statements

对象声明

每段QML代码都定义一个对象树。所有的QtQuick元素都是继承于QQuickItem(QML中的Item类型),包括Rectangle、Text等。
在定义对象的同时,对象的属性也会被赋初值。每个对象都可在其内部再声明子对象。每个对象的内容都由大括号包围。如下:

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

等价于:

Rectangle { width: 100; height: 100; color: "red" }

Rectangle是QtQuick模块中已经定义好的,包含width、height、color三个属性。
这段代码可以放进一个单独的QML文件供其他文件引用。

子对象

每个QML对象内可声明无限个子对象,如下代码:

import QtQuick 2.0

Rectangle {
    width: 200
    height: 200
    color: "red"
    Text {
        anchors.centerIn: parent // 此处parent是Rectangle
        text: "Hello, QML!"
    }
}

注释

QML的注释,类似于C++、Java和Javasript等,有两种:

  • 单行注释时使用双斜杠//
  • 多行注释使用 /* … */
    代码如下:
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
}

模块声明

QML每个类都单独存放一个文件,每个文件都是一个模块(有点类似于Matlab),但不能单独声明一个函数,函数必须写在类内,或者用Javascript代码。
引用时,就不再以对象的名了,而是以模块名使用。比如上代码保存在ABC.qml文件中,import之后就使用ABC.*了,命名上和Text类型再没有关系。
如果不考虑C++扩展的话,所有的QML代码都是使用已有的QML元素类型完成的。

参考:QML Syntax Basics

  • 6
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值