代码语言: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)加上限定符之后,使用任何对象前面都要加限定符