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

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