qml 中定义变量

property属性

       一个property是对象的一个属性,可以被赋为静态值或者是绑定到动态表达式上。一个property的值可以被其它的对象读取。一般情况下,property属性也可以被其它对象修改,除非该QML类型明确指定该property属性不能被修改。

【定义property属性】

  一个property属性可以在C++中定义,并且通过Q_PROPERTY注册到QML类型系统。当然,我们也可以在QML文档中通过如下语法自定义对象的property属性:

1362757316_9680.png


        通过这种方式,一个对象可以将一些特定的值暴露给其它对象,或者是更加简便的维护一些内部状态。

        Property属性的名称必须以小写字母开头,且只能包含字母,数字和下划线。JavaScript的保留关键字不能作为property属性的名称。Default关键字是可选的,对于default以及default属性修改者的详细信息稍后讨论。

        定义一个自定义的property属性也就为该property属性隐式的创建了一个value-change信号,也就是关联了一个名为on<PropertyName>Changed的signal handler。<PropertyName>就是property属性的名称,而且首字母要大写。

        例如:下面就定义了两个property属性,并且实现了其signalhandler:

1362757333_2094.png


【自定义property属性的合法类型】

     QML基本类型中的枚举类型都可以作为自定义property属性类型。例如:下面都是合法的property属性声明:

1362757355_6372.png


       一些QtQuick模块提供的基本类型是不能作为property类型的,除非在QML文档中导入QtQuick模块。

      var基本类型是通用的类型,可以保存任意类型的值,包括lists和objects:

1362757365_3151.png


       另外,任何的QML对象类型都可以被用作property属性类型。例如:

1362757441_9264.png


       这对于自定义QML类型也是适用的。如果在ColorfulButton.qml文件中定义了一个QML类型,那么ColorfulButton类型的property属性也是合法的。

【合法的property属性值】

我们可以通过两种方式为定义的property属性的值:

 *初始化

 *赋值

 值可以是静态值也可以是绑定表达式。

{初始化}

   Property属性初始化:

1362757460_1739.png


    我们可以在定义property属性的时候,也进行初始化赋值:

1362757470_7566.png


      初始化赋值举例如下:

1362757492_1400.png

http://blog.csdn.net/chenlong12580/article/details/8652597

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章