property屬性
一個property是對象的一個屬性,可以被賦爲靜態值或者是綁定到動態表達式上。一個property的值可以被其它的對象讀取。一般情況下,property屬性也可以被其它對象修改,除非該QML類型明確指定該property屬性不能被修改。
【定義property屬性】
一個property屬性可以在C++中定義,並且通過Q_PROPERTY註冊到QML類型系統。當然,我們也可以在QML文檔中通過如下語法自定義對象的property屬性:
通過這種方式,一個對象可以將一些特定的值暴露給其它對象,或者是更加簡便的維護一些內部狀態。
Property屬性的名稱必須以小寫字母開頭,且只能包含字母,數字和下劃線。JavaScript的保留關鍵字不能作爲property屬性的名稱。Default關鍵字是可選的,對於default以及default屬性修改者的詳細信息稍後討論。
定義一個自定義的property屬性也就爲該property屬性隱式的創建了一個value-change信號,也就是關聯了一個名爲on<PropertyName>Changed的signal handler。<PropertyName>就是property屬性的名稱,而且首字母要大寫。
例如:下面就定義了兩個property屬性,並且實現了其signalhandler:
【自定義property屬性的合法類型】
QML基本類型中的枚舉類型都可以作爲自定義property屬性類型。例如:下面都是合法的property屬性聲明:
一些QtQuick模塊提供的基本類型是不能作爲property類型的,除非在QML文檔中導入QtQuick模塊。
var基本類型是通用的類型,可以保存任意類型的值,包括lists和objects:
另外,任何的QML對象類型都可以被用作property屬性類型。例如:
這對於自定義QML類型也是適用的。如果在ColorfulButton.qml文件中定義了一個QML類型,那麼ColorfulButton類型的property屬性也是合法的。
【合法的property屬性值】
我們可以通過兩種方式爲定義的property屬性的值:
*初始化
*賦值
值可以是靜態值也可以是綁定表達式。
{初始化}
Property屬性初始化:
我們可以在定義property屬性的時候,也進行初始化賦值:
初始化賦值舉例如下:
http://blog.csdn.net/chenlong12580/article/details/8652597