类对象属性用来描述类对象的一些信息和当前的状态。类对象属性可以由类的编写者在编写类的时候定义,也可以由类的使用者在使用对象的时候定义。
由类的编写者定义
QPROPERTY()宏就是用来定义一个对象属性。
以第二行属性举例
QPROPERTY(bool enabled READ isEnabled WRITE setEnabled)
其中
bool是属性的类型。
enabled是属性的名字。
READ表示这个属性可读。
isEnabled表示当用户要读这个属性的时候,程序会执行isEnabled函数,并将这个函数的返回值返回给用户。
WRITE表示这个对象属性可写。
setEnabled表示当用户要写这个属性的时候,程序会执行setEnabled函数。
对象属性的使用
QMyWidget* myWidget = new QMyWidget();
bool enabled = myWidget->property("enabled");
enalbed=!enabled;
myWidget->setProperty("enabled",enabled);
用户定义属性
其实用户调用setProperty的时候,如果这个类没有这个属性,程序会动态地为这个类生成这个 属性。
属性的其他设置选项
类附加信息
Q_CLASSINFO(key,value)就是用来添加一些关于这个类基本 信息的一些描述。
使用的时候,用这个类的meatObject对象的classinfo(int)方法获取。name就是信息的名,value就是信息的值。