十二、QML——属性总结
1 自定义属性
自定义属性的格式如下:
[default] [required] [readonly] property <propertyType> <propertyName>
-
属性名称必须以小写字母开头,并且只能包含字母、数字、下划线。
-
default
、required
和readonly
关键字是可选的,用于修改所声明属性的语义。 -
声明自定义属性会隐式地为该属性创建一个值更改信号,以及一个命名
on<PropertyName>Changed
的关联信号处理程序,其中<PropertyName>
是属性的名称,但是这里需要首字母大写`
1.1 属性别名
属性别名是保存对另一个属性的引用的属性。与为属性分配新的唯一存储空间的普通属性定义不同,属性别名将新声明的属性连接为对现有属性的直接引用。
属性别名声明看起来像一个普通的属性定义,除了它需要 alias 关键字而不是属性类型,并且属性声明的右侧必须是有效的别名引用:
[default] property alias <name>: <alias reference>
与普通属性不同,别名具有以下限制:
- 不能引用深度为3或更大的层次结构内的属性(比如:myItem.myRect.border.color)
1.1 属性别名用途总结
-
外部可以修改,某个自定义组件内部组件的属性。
/* App.qml */ import QtQuick.Window 2.0 Window { MyRectangle { textItem.text = "hello" } } /* MyRectangle.qml */ import QtQuick 2.0 Rectangle { property alias buttonText: textItem.text width: 100; height: 30; color: "yellow" Text { id: textItem } }