游戏网站建设论文,网站设计素养,wordpress循环评论,河南周口东宇网站建设类对象属性用来描述类对象的一些信息和当前的状态。类对象属性可以由类的编写者在编写类的时候定义#xff0c;也可以由类的使用者在使用对象的时候定义。
由类的编写者定义 QPROPERTY()宏就是用来定义一个对象属性。 以第二行属性举例
QPROPERTY(bool enabled READ isEnabl…类对象属性用来描述类对象的一些信息和当前的状态。类对象属性可以由类的编写者在编写类的时候定义也可以由类的使用者在使用对象的时候定义。
由类的编写者定义 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的时候如果这个类没有这个属性程序会动态地为这个类生成这个 属性。这个属性的类型 时Qsting。当要读这个属性的值的时候可以用toBool,toInt等方法转化为想要想要的属性。
属性的其他设置选项 类附加信息 Q_CLASSINFO(key,value)就是用来添加一些关于这个类基本 信息的一些描述。 使用的时候用这个类的meatObject对象的classinfo(int)方法获取。name就是信息的名value就是信息的值。
demo MEMBER是用来绑定类的某个成员的。 NOTIFY的含义是当这个属性发生改变时发送信号。但在实践中发现这样做并不会发送信号。也就是这样写和下面写法 是等价的
Q_PROPERTY(unsigned age READ age WRITE setAge)要想实现属性被改变时发送信息就在setAge那里自己手动emit信号。 不过下面这样情况当属性发生改变 时会自动发信号。
Q_PROPERTY(QString mask MEMBER m_mask NOTIFY maskChanged)使用 MEMBER 注册后当 mask 发生改变将会发出 maskChanged 信号