在QML文件中我们可自定义属性,语法如下:
property <propertyType> <propertyName> [ : <value> ]
类似于成员变量,不同的是可以初始化,并且没有public、private、protected等限制。
自定义属性完成后会自动为这个属性创建一个属性值改变的信号和相应的信号处理器on****Changed,首字母大写,如下所示:
Rectangle {
id: root
property string someText
onSomeTextChanged: console.log("The someText will be: " + someText)
width: 800; height: 480
color: "lightblue"
MouseArea {
anchors.fill: parent
onClicked: someText = "click"
}
}
properName以一个小写字母开头,只能包括字母、数字和下划线。propertyType可以是QML基本类型,enumeration以int来代替,也可以是QML对象类型,神奇的var类型是返型的,支持任何类型的属性值,如下所示:
Item {
property int theNumber
property string theString
property url theUrl