QML语法之property属性
property属性
property是对象的属性,可以为其分配静态值或绑定到动态表达式。属性的值可以被其他对象读取。
通常,另一个对象也可以修改它,除非特定的QML类型明确地禁止对特定property进行这样的修改。
定义property属性
在c++中,也就是写cpp文件时,可以通过注册类的Q_PROPERTY来为类型定义属性,然后将该类型注册到QML类型系统。自定义property属性可以用下面的语法在QML文档中声明定义:
[default] [required] [readonly] property
修饰符
default:设置默认值
required:被required指定的属性就必须要一直存在,例如下面的例子:Rectangle {required color }
例子中创建一个矩形组件,其中color属性始终需要指定,required只能指定属性,不能做初始值。readonly:设置属性为只读
说明
(1)元素使用他们的元素类型名进行声明,使用他们的属性或者创建自定义属性来定义。
(2)一个属性对应一个值。
(3)id是⼀个⾮常特殊的属性值, 它在⼀个QML⽂件中被⽤来引⽤元素。id不是⼀个字符串, ⽽是⼀个标识符和QML语法的⼀部分。⼀个id在⼀个QML⽂档中是唯⼀的, 并且不能被设置为其它值, 也⽆法被查询
(4)⼀个属性能够设置⼀个值, 这个值依赖于它的类型。如果没有对⼀个属性赋值, 那么它将会被初始化为⼀个默认值。你可以查看特定的元素的⽂档来获得这些初始值的信息。
(5)⼀个属性能够依赖⼀个或多个其它的属性, 这种操作称作属性绑定。当它依赖的属性改变时, 它的值也会更新。这就像订了⼀个协议, 在这个例⼦中height始终是width的两倍。
添加⾃ ⼰定义的属性需要使⽤property修饰符, 然后跟上类型, 名字和可选择的初始化值(property : ) 。如果没有初始值将会给定⼀个系统初始值作为初始值。
(6)alias关键字允许我们转发⼀个属性或者转发⼀个属性对象⾃ ⾝到另⼀个作⽤域。我们将在后⾯定义组件导出内部属性或者引⽤根级元素id会使⽤到这个技术。⼀个属性别名不需要类型, 它使⽤引⽤的属性类型或者对象类型。
property声明可以向外部公开特定值,或者更容易维护某些内部状态。
property属性名称必须以小写字母开头,并且只能包含字母、数字和下划线。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
