2.1.1 QML语法基础一

2021-06-30 18:19:58 浏览数 (1)

代码语言:javascript复制
import QtQuick 2.9
Rectangle{
    id:root
    width:400
    height:400
    color:"blue"
    Image{
        source:"img/hi.png"
        anchor.centerIn:parent
    }
}

1.导入语句

import QtQuick 2.9 :导入了QtQuick模块,包含各种QML类型,如果不使用import语句,Rectangle和Image类型都无法使用

2.对象和属性

在上面代码中,我们创建了Rectangle根对象和Image子对象。QML对象由大写字母开头,后面有一对花括号,括号里面包含对象的id、属性值或者子对象。

一个对象一般都会在最开始指定一个id,这个id是在此qml中必须是唯一的。我们可以通过id值在其他对象中识别并引用该对象,但id值的特性并不是一个属性。

除了id设置,在Rectangle中还设置了width、height和color等属性,属性通过“属性:值”语法进行初始化,属性和它的值使用冒号隔开。

属性可以分行写时,结尾可不加分号;属性值写在一行,必须用分号分开。

3.布局

anchor.centerIn属于锚布局

4.表达式

代码语言:javascript复制
Item{
     id:root
     width:text1.width 30
     Text{
          id:text1
          width:30
     }
}

在表达式中包含其他对象或属性的引用,当表达式的值改变是,以该表达式为值的属性会自动更新为新的值。

5.打印输出

console.log()和console.debug()来输出调试信息,类似qt C 中的qDebug()

6.import导入语句

代码语言:javascript复制
import QtQuick 2.9 as CoreItems
import "../textwidgets" as Mymodule
CoreItems.Rectangle{
width:100;height:100
MyMudule.Text{ text:"Hello Qt!"}
CoreItems.Text{text:"Hello from Qt Quick"}
}

(1)如果QtQuick和自定义的Mymodule中都有Text类型,在同一个Qml中使用这两个模块,则需要加上as后面的限定符

(2)加上限定符之后,使用任何对象前面都要加限定符

qt

0 人点赞