reprinted from:http://spaces.msn.com/members/nzt/Blog/cns!1pmB0kdXbVha3bZHlaGN-REA!273.entry
1.属性有什么用?
由于c++类具备封装特性,不推荐对类成员变量(class variables)进行直接存取。现代编译器引用属性(property)的概念,对成员变量进行安全的存取。比如在win平台下 vc7有类似于__property或[property]的支持。Qt由于要实现其跨平台(cross platform),引入一套独特的属性系统。其底层是由meta compiling进行支持。
2.格式
Q_PROPERTY(type name
READ getFunction
[WRITE setFunction]
[RESET resetFunction]
[DESIGNABLE bool]
[SCRIPTABLE bool]
[STORED bool])
* Q_PROPERTY: qt里定义的宏;
* type name: 即类型名+属性名,属性名(name)在QObject的setProperty里被引用;